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;  //没有数据时不显示
                }

        }
  • 相关阅读:
    jmeter测试接口--form表单提交请求(解决请求传参为空的问题)
    jmeter测试接口-打开很多TCP的连接数TIME_WAIT状态(Linux环境)导致报错的解决方法
    Jmeter 事务下的if控制器和无事务下的if控制器是否有不同 (业务实现3:2的补充)
    Jmeter if控制器的使用
    Jmeter 文件格式的参数化
    CentOS7学习笔记--tomcat9环境安装
    CentOS7学习笔记--PHP环境安装
    CentOS学习笔记—启动、ROOT密码
    虚拟机硬盘扩容
    win7如何设置某个软件不弹出用户账户控制
  • 原文地址:https://www.cnblogs.com/chy710/p/745590.html
Copyright © 2011-2022 走看看