• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.NetRepeater的两层嵌套以及遍历取值的简单实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  <select id="s6" multiple="multiple">
<asp:Repeater ID="rpl_dept" runat="server"
onitemdatabound
="rpl_dept_ItemDataBound">
<ItemTemplate>
<optgroup label="<%#Eval("Name") %>">
<asp:Repeater ID="rpl_user" runat="server">
<ItemTemplate>
<option><%#Eval("Name")%></option>
</ItemTemplate>
</asp:Repeater>
</optgroup>
</ItemTemplate>
</asp:Repeater>
</select>
   protected void rpl_bind()
{
com.hmby.BLL.Depts dept = new com.hmby.BLL.Depts();
string strWhere = "";
DataTable dt = new DataTable();
dt = dept.GetList(strWhere).Tables[0];
if (dt.Rows.Count > 0)
{
this.rpl_dept.DataSource = dt;
this.rpl_dept.DataBind();
}
}

protected void rpl_dept_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("rpl_user") as Repeater;//找到里层的repeater对象
DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项
int deptId = Convert.ToInt32(rowv["Id"]); //获取填充子类的id
DataTable dt = new DataTable();
com.hmby.BLL.Users user = new com.hmby.BLL.Users();
string strWhere = " DeptId=" + deptId;
dt = user.GetList(strWhere).Tables[0]; ;
if (dt.Rows.Count > 0)
{
rep.DataSource = dt;
rep.DataBind();
}

}

}

另外一种嵌套的前台(表格)(下边是遍历)

<asp:Repeater ID="rpl_mParent" runat="server"
                        onitemdatabound="rpl_mParent_ItemDataBound">
    <ItemTemplate>
        <tr>
            <td style="vertical-align:top;background-color:#ffa !important;">
            <input type="checkbox" )%></label>
        </td></tr>
        </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
    </asp:Repeater>

遍历嵌套的Checkbox,双层遍历

for (int i=0;i<this.rpl_mParent.Items.Count;i++)
{
HtmlInputCheckBox cbox_p = (HtmlInputCheckBox)rpl_mParent.Items[i].FindControl("cbox_p");
if (cbox_p.Checked)
{
//选中了checkbox_p
JsUtil.Alert(this, "p");
}
Repeater rplChild = (Repeater)rpl_mParent.Items[i].FindControl("rpl_mChild");
string c = "";
for (int j=0;j<rplChild.Items.Count;j++)
{
HtmlInputCheckBox cbox_c = (HtmlInputCheckBox)rplChild.Items[j].FindControl("cbox_c");
if (cbox_c.Checked)
{
//选中了checkbox_c
c += cbox_c.Value + ",";
}
}
JsUtil.Alert(this, c);
}






鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETMVC权限验证发布时间:2022-07-10
下一篇:
Asp.Net中using的使用的方法(转)发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap