1
<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# 代码,以便我可以将它们插入我的数据库中...

4

2 回答 2

2

以下代码将为您提供已检查的 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()));
  }
}
于 2013-06-07T09:02:48.030 回答
-1

使用 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();是您通过存储过程从后端调用值的方法。

于 2018-05-03T13:41:46.397 回答