zoukankan      html  css  js  c++  java
  • ADO.NET嵌套数据绑定

    自动获取数据库中的主从关系数据,以下是获取省份及省份对应的城市,代码如下:

    <asp:repeater ID="Repeater1" runat="server">
            
    <ItemTemplate >
                
    <span style ="font-weight :bold "><%#Eval ("pname"%></span>
                
    <ul>
                    
    <asp:Repeater ID="detal" runat ="server" DataSource ='<%#GetCity(Eval("pid").ToString()) %>'>
                        
    <ItemTemplate >
                            
    <li><%#Eval("city_name"%></li> 
                        
    </ItemTemplate>
                    
    </asp:Repeater>
                
    </ul>
            
    </ItemTemplate>
        
    </asp:repeater>

    重点:DataSource ='<%#Getawd(Eval("pid").ToString()) %>'   调用GetCity方法获取子类

    protected void Page_Load(object sender, EventArgs e)
        
    {
            
    if (!Page.IsPostBack)
                BindGrid();
        }

        
    //获取大类的类别
        protected void BindGrid()
        
    {
            
    string cmdText = "select pid, pname from pro";
            DataTable dt 
    = vc.GetDataTable(cmdText );
            Repeater1.DataSource 
    = dt;
            Repeater1.DataBind();
        }

        
    //获取小类内容
        protected DataTable GetCity(string  id)
        
    {
            
    string cmdText = "select city_name from city where promo_id = " + id + "";
            DataTable dt 
    = vc.GetDataTable(cmdText);
            
    return dt;
        }


    实现效果如下:
     

    方法二:在第一个Repeater的ItemDataBound事件中绑定第二个Repeater,HTML代码中第一个Repeater不赋予DataSource
    protected void repeatTitle_ItemDataBound(object sender, RepeaterItemEventArgs e)
        
    {

                DataRowView dr 
    = (DataRowView)e.Item.DataItem;
                DataTable mydt 
    = GetCity(dr[0].ToString());
                
    if (mydt.Rows.Count > 0)
                
    {
                    Repeater myRepeat 
    = (Repeater)e.Item.FindControl("repeatCont");
                    myRepeat.DataSource 
    = mydt;
                    myRepeat.DataBind();
                    mydt.Dispose();
                }

                
    else
                
    {
                    e.Item.Visible 
    = false;  //没有数据时不显示
                }

        }
  • 相关阅读:
    [python] 类组合与聚合关系
    [python] 伪私有属性,防止变量名冲突
    [vim] 配置文件之常用命令模式
    [VIM] 编辑器---多行注释和取消注释及多行复制和黏贴
    [Visual Studio Code] 执行python
    [C] 编译器codeblocks安装注意
    字符串全排列
    集合全量子集提取
    random函数详解
    Solr常用命令总结
  • 原文地址:https://www.cnblogs.com/chy710/p/745590.html
Copyright © 2011-2022 走看看