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 のテキストボックスとグリッドビューのチェックボックスを取得します

現在 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 に答える