页面有2个DataGrid,分别都加了asp:CheckBox的模版列,相关判断?
还有2个按钮,我想用客户端判断DataGrid中的asp:CheckBox是否有选择的?
用客户端代码怎么判断2个DataGrid的asp:CheckBox是否有选择?

解决方案 »

  1.   

    在生成的页面中,右键页面查看源文件,你可以看到两个datagrid生成的HTML代码都是有规律的
    每个checkbox都会有固定的ID,你根据这个ID能够获得相关的属性
      

  2.   

    以前写的,是计算datagrid中某一模板列中的textbox的值的和。方法就是在客户端遍历datagrid(datagrid在客户端实际是个table)。对于你的需求照着改改就行。
    前台:
    <body class="homeBody">
        <form id="form1" runat="server" method="get">
            <div>
               <asp:DataGrid ID="DataGrid1" runat="server" OnItemDataBound="DataGrid1_ItemDataBound" AutoGenerateColumns="false">
               <Columns>
                 <asp:TemplateColumn HeaderText="">
                 <ItemTemplate>
                     <asp:TextBox ID="TextBox1" runat="server" Text='<%#Container.DataItem  %>'></asp:TextBox>
                 </ItemTemplate>
                 </asp:TemplateColumn>
               </Columns>
               </asp:DataGrid>
            </div>
            <span id="result"></span>
        </form>
    </body>
    <script type="text/javascript" language="javascript">
    function cal()
    {
       var strGridID = '<%=this.DataGrid1.ClientID%>';
       var objGrid = document.getElementById(strGridID);
       var iRowCount = objGrid.rows.length;
       var total = 0;
       for(var i = 1;i<iRowCount;i++)
       {
          var txt = objGrid.rows(i).cells(0).children(0);      total = total + parseInt(txt.value);
       }
       result.innerText = "Total:" + total.toString();
    }
    </script>后台:
            protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
            {
                if (e.Item.ItemIndex > -1)
                {
                    TextBox txt = (TextBox)e.Item.FindControl("TextBox1");
                    txt.Attributes.Add("onblur", "cal();");
                }
            }        protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    int[] ds = new int[] { 1, 2, 3, 4, 5 };
                    DataGrid1.DataSource = ds;
                    DataGrid1.DataBind();
                }
            }