• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

Repeater嵌套,CheckBox选择问题,请帮助

hejiwang 2011-11-28 11:27:12
页面代码如下:
<asp:Repeater runat="server" ID="objRepeater" OnItemDataBound="objRepeater_ItemDataBound">
<HeaderTemplate>
<table class="Grid" border="1" cellspacing="0" style="width: 900px;">
<tr>
</tr>
<th>
省份
</th>
<th>

</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:CheckBox ID="chkPrve" name="chkPrve" runat="server" />
</td>
<td>
<asp:Repeater ID="repShopInfo" runat="server">
<ItemTemplate>
<asp:CheckBox ID="chkCity" name="chkCity" runat="server" /> </ItemTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>

左边为省份代码,右边为本省的所有城市,如果点击一个省份的checkbox选中此省份下所有城市city的checkbox

后台如果获取选中的值。
...全文
121 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hejiwang 2011-11-29
意思 是表格嵌套
第一列是省 第二列是市
如果省的checkbox 被选中 那对应的全部的市也要被选中

市里面不是全选中,省不选中就选中。

请帮助!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
想用jquery实现。纯JAVASCRIPT也行。

谢谢大家

回复
lx66103567 2011-11-29
but 你到底想问什么呢???光贴代码,不说问题(具体点)。。。、、、
回复
IT0329 2011-11-29
回复
longbin891012 2011-11-29
//第一级菜单2010-08-09 design by longbin

function check_all(menu_all,MENU_ID)
{
for (i=0;i<document.all(MENU_ID).length;i++)
{

if(menu_all.checked)
document.all(MENU_ID).item(i).checked=true;
else
document.all(MENU_ID).item(i).checked=false;
var IDStr = document.all(MENU_ID).item(i).id;
var ID = IDStr.split('CB')[1];
for (j=0;j<document.getElementsByName(ID).length;j++)
{
if(document.all(ID).item(j)!=null)
{
document.all(ID).item(j).checked = document.all(MENU_ID).item(i).checked;
}
}
}

if(i==0)
{
if(menu_all.checked)
document.all(MENU_ID).checked=true;
else
document.all(MENU_ID).checked=false;
}
}
//第二级子菜单 2010-08-09 design by longbin
function check0(id,id1)
{
var nameStr = document.getElementById(id).id;
var ID = nameStr.split('CB')[1];
for (j=0;j<document.getElementsByName(ID).length;j++)
{
if(document.all(ID).item(j)!=null)
{
document.all(ID).item(j).checked = document.getElementById(id).checked;
}
}
var b=document.getElementById(id);
var a=document.getElementById(id1);
if(b.checked)
{
a.checked=true;
}
}
function mysubmit()
{
var str="";
var all=document.getElementsByTagName("input")
for(var i=0;i<all.length;i++)
{
if(all[i].checked)
{
if(str=="")
{
str=all[i].value;
}else
{
str+=","+all[i].value;
}
}
}

//document.getElementById("lblFuncIdStr").value=str;
Form1.lblFuncIdStr.value = str;
Form1.submit();
}
//第三级子菜单 2010-08-09 design by longbin
function check1(obj,ID)
{
var cb = document.getElementById(ID);
cb.checked = obj.checked;
var ckbox = document.getElementsByTagName("input");
for(var i=0;i<ckbox.length;i++)
{
if(ckbox[i].type =="checkbox" && ckbox[i].name =="MENU_"+cb.name)
{
if(obj.checked)
{
ckbox[i].checked = obj.checked;
}
}

}
}
</script>
回复
阿非 2011-11-29

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="rp" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<input type="checkbox" name='prve' /><%#Container.DataItem %>省
</td>
<td>
<asp:Repeater ID="rpChild" runat="server" DataSource='<%#GetSource() %>'>
<ItemTemplate>
<input type="checkbox" name='city'
value='<%# string.Format("{0}省{1}市", (Container.Parent.Parent as RepeaterItem).DataItem, Container.DataItem)%>' />
<%# Container.DataItem %>市
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table></FooterTemplate>
</asp:Repeater>
<asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" />
</form>
<script type="text/javascript">
$(function () {
$('input[name="prve"]').click(function () {
var prve = this;
$('input[type="checkbox"]', $(this).parent().next()).each(function () {
this.checked = prve.checked;
});
});
});
</script>
</body>
</html>


protected int[] GetSource()
{
return new int[] { 1, 2, 3, 4, 5 };
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
rp.DataSource = new int[] { 11, 22, 33, 44, 55, 66, 77, 88, 99 };
rp.DataBind();
}
}

protected void btnSubmit_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(GetType(), "selectValues", Request.Form["city"]);
}
回复
阿非 2011-11-28
意思 是表格嵌套

第一列是省 第二列是市

如果省的checkbox 被选中 那对应的全部的市也要被选中

那如果 市里面不是全选中,省还选中么?

你想让省实现 全选和取消全选么?

回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2011-11-28 11:27
社区公告
暂无公告