zoukankan      html  css  js  c++  java
  • 2级DataList嵌套

    其中红色内容是题目,绿色内容是回答内容,由于数据库设计时候一定会把问题和答案分开,且一个问题多个答案选择(一对多关系),所以问题和答案
    会在不同的表内且用一条语句无法实现按照此结构的顺序结构(也就是用一个DataList无法完成最终的样式).
    那么我们便会用嵌套方法,既红色部分为父DataList绿色部分为子DataList互相不干扰.
    
    前台代码:
    <%@ Import Namespace="System.Data" %>
    <asp:DataList ID="Parent" runat="server" Height="134px" Width="133px" OnInit="Parent_Init">
            <ItemTemplate>
            <asp:Label ID="Label1" runat="server" Text='<%# Eval("QuestionContent") %>' Font-Bold="True" ForeColor="Red"></asp:Label>
                &nbsp;&nbsp;<asp:DataList ID="Child" runat="server" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("Myrelations") %>' ForeColor="Green">
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "[\"AnswerContent\"]")%>'></asp:Label>
                    </ItemTemplate>
                </asp:DataList>
            </ItemTemplate>
        </asp:DataList>
    
    注意:代码绿色部分分别为这个项目 问题的绑定与选择答案的绑定.
             代码红色部分为子DataList的数据源绑定  "Myrelations"为问题与选择答案表的关系名称(关于这个关系名称的由来下面的代码中将介绍)
    
    
    后台代码:
    
      String connStr = ConfigurationManager.ConnectionStrings["ResearchProjectConnectionString"].ConnectionString;  //读取WEB.CONFIG连接字符串
    SqlConnection conn = new SqlConnection(connStr);
            SqlDataAdapter SqlDa1 = new SqlDataAdapter("select *  from Question", conn);  //遍历问题表
            SqlDataAdapter SqlDa2 = new SqlDataAdapter("select * from Answer", conn);//遍历回答表
            DataSet ds = new DataSet();
            SqlDa1.Fill(ds,"Question");
            SqlDa2.Fill(ds,"Answer");
            ds.Relations.Add("Myrelations", ds.Tables["Question"].Columns["QuestionOrder"], ds.Tables["Answer"].Columns["QuestionOrder"]);  //为两个表建立关联
            Parent.DataSource = ds.Tables["Question"];//父DataList绑定源
          
          
            Page.DataBind();//绑定
            conn.Close();
    
    注意:关于关联的那
  • 相关阅读:
    Get machine IP and location via open api private static string GetOwnPublicIP() {
    大数据挑战与NoSQL数据库技术
    Objectc 学习之路一(Hello world)
    SharePoint designer 2013 中新的workflow action(操作)
    进程、线程、协程
    网站响应时间过长的原因及解决方法
    Web前端性能优化——如何提高页面加载速度
    使用phpMyAdmin批量修改Mysql数据表前缀的方法
    网站加载速度优化的14个技巧
    从if else 到设计模式的转变 规格严格
  • 原文地址:https://www.cnblogs.com/a1235202005/p/2673941.html
Copyright © 2011-2022 走看看