【问题标题】:how to check each checkbox in gridview如何检查gridview中的每个复选框
【发布时间】:2013-06-03 12:05:23
【问题描述】:
<asp:GridView ID="science_tab" runat="server" AutoGenerateColumns="false"       ShowHeader="false" class="subjects_tab">
<Columns>
<asp:TemplateField>
<ItemTemplate>
    <asp:CheckBox ID="sciencefees_check" runat="server" Text='<%# bind("sub_name") %>' ></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<label class="rsperhr" for="sciencefees_text">Rupees</label>
    <asp:TextBox ID="sciencefees_text" runat="server" Width="40px"  ></asp:TextBox>
    <label class="rsperhr" for="sciencefees_text">Per Hour</label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

我的主题表中可能有 10 个项目,因此有 10 个复选框...

我想要 C# 代码分别检查所有复选框并将选中的复选框提供给我,以便我可以将它们插入我的数据库中...

【问题讨论】:

    标签: c# database gridview checkbox


    【解决方案1】:

    以下代码将为您提供已检查的 ckeckbox id 的列表。

    List<int> checkedIDs = new List<int>();
    
    foreach (GridViewRow row in grid1.Rows)
    {
      CheckBox chk = (CheckBox)row.FindControl("chkStatus");
      if (chk.Checked){
       checkedMsgIDs.Add(int.Parse(grid1.DataKeys[row.RowIndex].Value.ToString()));
      }
    }
    

    【讨论】:

      【解决方案2】:

      使用javaScript代码如下:

      在 aspx 页面中

      <script language="javascript" type="text/javascript">
      function checkAllOnGrid() {
          varintRowCount=document.getElementById('ctl00_ContentPlaceHolder1_hdCount').value;
          var chkAll = document.getElementById('ctl00_ContentPlaceHolder1_gvdata_ctl01_chkAll')
          var iStartItemIndex = 2;
      
          if (chkAll.checked == true) {
              for (i = iStartItemIndex;
                   i < parseInt(intRowCount) + parseInt(iStartItemIndex) ; i++) {
                  if (i > 9) {
                      document.getElementById("ctl00_ContentPlaceHolder1_gvdata_ctl" + i
                                              + "_" + "ChkAction").checked = true;
                  } else {
                      document.getElementById("ctl00_ContentPlaceHolder1_gvdata_ctl0" + i
                                              + "_" + "ChkAction").checked = true;
                  }
              }
          } else {
              for (i = iStartItemIndex;
                   i < parseInt(intRowCount) + parseInt(iStartItemIndex) ; i++) {
                  if (i > 9) {
                      document.getElementById("ctl00_ContentPlaceHolder1_gvdata_ctl" + i
                                              + "_" + "ChkAction").checked = false;
                  } else {
                      document.getElementById("ctl00_ContentPlaceHolder1_gvdata_ctl0" + i
                                              + "_" + "ChkAction").checked = false;
                  }
              }
          }
      }
      
      function unCheckHeader() {
          var chkAll=document.getElementById('ctl00_ContentPlaceHolder1_gvdata_ctl01_chkAll')
          if (chkAll.checked == true) { chkAll.checked = false; }
      }
      </script>
      

      现在使用 ID= hdcount 的文本框和 gridview 中的复选框

      现在在 aspx.cs 页面中

      protected void fillgrid() {
          DataSet ds = new DataSet();
          ds = obj.FillGrid();
          gvdata.DataSource = ds.Tables[0];
          gvdata.DataBind();
          hdCount.Text = ds.Tables[0].Rows.Count.ToString();
      }
      

      obj.FillGrid(); 是您通过存储过程从后端调用值的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-15
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多