嵌套 DataList 梆定

嵌套 DataList  通过DataSource属性进行梆定需要使用到onitemdatabound()事件

 

先看效果图吧:系统全局配置和权限管理等栏目存储在classid表,而子项目存储在item表中。梆定子项是依具classid表的ID。像这样的情况就可用嵌套DataList  和嵌套Repeater来梆定。DataList  与Repeater的区别在于。DataList  会生成table等标签而Repeater不会。

DataList  与Repeater大同小意,就用DataList  来举例吧

asp.aspx页面代码:

 

<form id="form1" runat="server">

        <asp:CheckBoxList ID="cbxpop" runat="server" RepeatDirection="Horizontal"></asp:CheckBoxList>

        <asp:DataList ID="ddl_first" runat="server" onitemdatabound="ddl_first_ItemDataBound">

            <ItemTemplate>

                <asp:HiddenField ID="parentid" runat="server" Value='<%#Eval("id") %>' />

                <input type="checkbox" class="maincbx" name="mainbox" value='<%#Eval("id") %>'/><b><%#Eval("name") %></b>                      

                <asp:DataList ID="dll_pop" runat="server" CssClass="subs" RepeatDirection="Horizontal">

                    <ItemTemplate><input type="checkbox" name="subcbx" value='<%#Eval("id") %>'/><%#Eval("name")%>&nbsp;</ItemTemplate>

                </asp:DataList>

            </ItemTemplate>

        </asp:DataList>

       

        <asp:Button ID="btnSubmit" runat="server" Text="保存数据"

            onclick="btnSubmit_Click" />

        </form>

.cs文件代码:

 

if (!IsPostBack) {

            //绑定datalist

            ddl_first.DataSource = oBarBll.GetList("parentid=0");

            ddl_first.DataBind();

}

 

 

protected void ddl_first_ItemDataBound(object sender, DataListItemEventArgs e)

    {

        string cid = "-1";

        foreach (Control ct in e.Item.Controls)

        {

            if (ct.GetType() == typeof(HiddenField))

            {

                cid = ((HiddenField)ct).Value;

            }

 

            if (ct.GetType() == typeof(DataList))

            {

                DataList ddl = (DataList)ct;

                ddl.DataSource = oBarBll.GetList("parentid=" + cid + "");

                ddl.DataBind();

            }

        }

    }

 

大概也就这样吧。

转载于:https://www.cnblogs.com/sunnysmile/archive/2009/05/08/1452792.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值