当前位置:编程学习 > C#/ASP.NET >>

datalist嵌套

[复选框]单位一

[]单位一人员一 []单位一人员二 []单位一人员三 []单位一人员四

[复选框]单位二

[]单位二人员一 []单位二人员二 []单位二人员三 []单位二人员四
………

要求:

要求使用datalist进行动态绑定,1)随单位的增加而增加,每个单位下面对应该单位的人员;2)单击单位复选框,对应单位人员全部选择;3)通过一个button能获取整个页面中选中的人员。 --------------------编程问答-------------------- 第一个需求,使用JS
第二个需求,点击Button之后,遍历DataList --------------------编程问答-------------------- 第一个需求,DataList嵌套
第二个需求,使用JS
第三个需求,点击Button之后,遍历DataList --------------------编程问答-------------------- 你这个不需要嵌套,一层Repeater就可以了,用模板列实现之 --------------------编程问答-------------------- treeview先绑定部门,再绑定人员
 或第二个datalist使用chekboxlist
点击第一层,通过JS设置chekcboxlist的选择状态
foreach(DataListItem item in datalist1.Items)
{
 DataList d=item.FindControl("") as DataList;
foreach(DataListItem item2 in d.Items)
{
}
} --------------------编程问答--------------------
引用 4 楼 wuyq11 的回复:
treeview先绑定部门,再绑定人员
 或第二个datalist使用chekboxlist
点击第一层,通过JS设置chekcboxlist的选择状态
foreach(DataListItem item in datalist1.Items)
{
 DataList d=item.FindControl("") as DataList;
foreach(DataListItem it……
 

 up --------------------编程问答-------------------- 太对了~~~
引用 4 楼 wuyq11 的回复:
treeview先绑定部门,再绑定人员
 或第二个datalist使用chekboxlist
点击第一层,通过JS设置chekcboxlist的选择状态
foreach(DataListItem item in datalist1.Items)
{
 DataList d=item.FindControl("") as DataList;
foreach(DataListItem it……
--------------------编程问答--------------------
引用 5 楼 panguo33 的回复:
引用 4 楼 wuyq11 的回复:
treeview先绑定部门,再绑定人员
或第二个datalist使用chekboxlist
点击第一层,通过JS设置chekcboxlist的选择状态
foreach(DataListItem item in datalist1.Items)
{
DataList d=item.FindControl("") as DataList;
forea……


就这么个思路。。 --------------------编程问答--------------------

<div>
        <table>
            <asp:DataList ID="DataList1" runat="server" onitemdatabound="DataList1_ItemDataBound" >
            <ItemTemplate>
                <tr><td>
                    <asp:CheckBox ID="CheckBox1" runat="server" areano='<%#Eval("areano") %>' OnCheckedChanged="CheckedChanged" AutoPostBack="true"/><%#Eval("areaname") %></td></tr>
                <tr><td style="padding-left:15px">
                    <asp:DataList ID="DataList2" runat="server" RepeatDirection="Horizontal" RepeatColumns="5">
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox2" runat="server" areano='<%#Eval("areano") %>'/><%#Eval("areaname") %>
                    </ItemTemplate>
                    </asp:DataList>
                </td></tr>
            </ItemTemplate>
            </asp:DataList>
        </table>
    </div>



    protected void Page_Load(object sender, EventArgs e)
    {
       if (!IsPostBack)
       {
          dlbind();
       }
    }
    public void dlbind()
    {
        string sql = "";//绑定单位语句
        DataList1.DataSource = DbHelperSQL.Query(sql);
        DataList1.DataBind();
    }

    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {

        DataList DataList2 = (DataList)e.Item.FindControl("DataList2");
        DataRowView dr = (DataRowView)e.Item.DataItem;
        string sql = "";//绑定人员语句
        DataList2.DataSource = DbHelperSQL.Query(sql);
        DataList2.DataBind();
    }

    public void CheckedChanged(object sender,EventArgs e)
    {
        for (int i = 0; i < DataList1.Items.Count; i++)
        {
            CheckBox cbx1 = DataList1.Items[i].FindControl("CheckBox1") as CheckBox;
            DataList DataList2 = (DataList)DataList1.Items[i].FindControl("DataList2");
            for (int j = 0; j < DataList2.Items.Count; j++)
            {
                CheckBox cbx2 = DataList2.Items[j].FindControl("CheckBox2") as CheckBox;
                if (cbx1.Checked == true)
                {
                    cbx2.Checked = true;
                }
                else
                { cbx2.Checked = false; }
            }
        }
    }
--------------------编程问答--------------------

--------------------编程问答-------------------- 13.主从显示

<asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
            <tr class="c1">
                <td><%#Eval("sort") %></td>
                <td><a href="http://www.cnblogs.com/shtml/view_cls1/ViewCls_<%#Eval("id") %>.shtml" target="_blank"><%#Eval("cls_name") %></a> <a href="./admin_cls2_add.aspx?alt=1&id=<%#Eval("id") %>">[添加二级分类]</a></td>
                <td><asp:Button ID="Button1" runat="server" Text="生成" CssClass="btn" CommandName='<%#Eval("id") %>' OnCommand="cls1Shtml" /></td>
                <td><asp:Button ID="Button2" runat="server" Text="编辑" CssClass="btn" CommandName='<%#Eval("id") %>' OnCommand="cls1Edit" /></td>
                <td><asp:Button ID="Button3" runat="server" Text="删除" CssClass="btn" CommandName='<%#Eval("id") %>' OnCommand="cls1Delete" OnClientClick="return confirm('确定删除吗?')" /></td>
            </tr>
                <asp:Repeater ID="Repeater2" runat="server" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("TwoTable") %>'>
                <!--DataSource='<%#Eval("TwoTable") %>'直接这样也是可以的-->
                <ItemTemplate>
                   
                <tr class="c2" onmouseover="className='tdover2'" onmouseout="className='tdout2'">
                    <td>  <%#Eval("[\"sort\"]")%></td>
                    <td class="c2_1"><a href='http://www.cnblogs.com/shtml/view_cls2/ViewCls2_<%#Eval("[\"id\"]")%>_0.shtml' target="_blank">二级分类: <%#Eval("[\"cls_name\"]")%></a></td>
                    <td><a href="#">生成</a></td>
                    <td><a href="./admin_cls2_add.aspx?alt=2&id=<%#Eval("[\"id\"]")%>"& gt;编辑</a></td>
                    <td><asp:LinkButton ID="delete" CommandName='<%#Eval("[\"id\"]")%>' OnCommand="cls2Delete" OnClientClick="return confirm('确定删除吗?')" runat="server">删除</asp:LinkButton></td>
                </tr>
                </ItemTemplate>
                </asp:Repeater>
        </ItemTemplate>
    </asp:Repeater>

后台代码

DataSet Ds = new DataSet();
            Ds.Tables.Add(Pn163.com_BLL.BLL_cls1.cls1DataSet().Tables[0].Copy());
            Ds.Tables.Add(Pn163.com_BLL.BLL_cls2.cls2DataSet().Tables[0].Copy());
            Ds.Relations.Add("TwoTable",Ds.Tables["cls1"].Columns["id"], Ds.Tables["cls2"].Columns["cls1_code"]);
            Telesa.DataBind.ToBind(Repeater1, Ds);
2.用ajax或者事件
3.循环DataList,然后findControls --------------------编程问答-------------------- 就这样,up


引用 4 楼 wuyq11 的回复:
treeview先绑定部门,再绑定人员
 或第二个datalist使用chekboxlist
点击第一层,通过JS设置chekcboxlist的选择状态
foreach(DataListItem item in datalist1.Items)
{
 DataList d=item.FindControl("") as DataList;
foreach(DataListItem it……
--------------------编程问答--------------------
<asp:Repeater id="rptCategories" runat="server"> 
  <HeaderTemplate> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
  </HeaderTemplate> 
  <ItemTemplate> 
    <!--分类名称--> 
    <tr><th><%# DataBinder.Eval(Container.DataItem, "TypeName") %></th></tr> 
    <!--分类下的产品--> 
    <asp:Repeater id="rptProduct" runat="server"> 
      <ItemTemplate> 
        <tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%# DataBinder.Eval(Container.DataItem, "ProductName") %></a></td></tr> 
      </ItemTemplate> 
    </asp:Repeater> 
  </ItemTemplate> 
  <FooterTemplate> 
    </table> 
  </FooterTemplate> 
</asp:Repeater> 
//在绑定分类品名时,绑定分类下的产品 
private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) 

    BLL.Products products =new BLL.Products(); 
    if (e.Item.ItemType == ListItemType.Item ||    e.Item.ItemType == ListItemType.AlternatingItem)  
    { 
        Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct"); 
        //找到分类Repeater关联的数据项 
        DataRowView rowv = (DataRowView)e.Item.DataItem; 
        //提取分类ID 
        int CategorieId = Convert.ToInt32(rowv["ID"]); 
        //根据分类ID查询该分类下的产品,并绑定产品Repeater 
        rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId); 
        rptProduct.DataBind(); 
    } 

补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,