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

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

页面代码如下:
<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

后台如果获取选中的值。 --------------------编程问答-------------------- 意思 是表格嵌套

第一列是省 第二列是市

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

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

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

--------------------编程问答-------------------- but   你到底想问什么呢???光贴代码,不说问题(具体点)。。。、、、 --------------------编程问答-------------------- 意思 是表格嵌套
第一列是省 第二列是市
如果省的checkbox 被选中 那对应的全部的市也要被选中

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

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

谢谢大家

--------------------编程问答--------------------

<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"]);
        }
--------------------编程问答-------------------- 参考相关:
http://www.cnblogs.com/insus/archive/2011/06/17/2081639.html --------------------编程问答-------------------- //第一级菜单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> --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,