【问题标题】:asp.net fail get value from gridview checkboxasp.net 无法从 gridview 复选框获取值
【发布时间】:2016-06-30 09:03:07
【问题描述】:

我有一个数据源来自数据库的 GridView 表。 GridView 的第一列是一个复选框,该复选框用户可以选择复选框。我不确定我在哪里做错了,我的代码无法获得我勾选的复选框。

 <div id="UserFrom" class="form-horizontal" runat="server">
    <h4>Add Training</h4>
    <hr />
    <div class="alert alert-info" style="display: none;">
        <button data-dismiss="alert" class="close" type="button">×</button>
    </div>
    <div class="form-group">
        <label for="inputCode" class="col-sm-2 control-label">Training Code</label>
        <div class="col-sm-3">
            <asp:DropDownList ID="ddlRole" runat="server" CssClass="form-control" ValidationGroup="G1" required></asp:DropDownList>
        </div>
    </div>
    <div class="col-md-6">
        <asp:GridView ID="GrdRole" runat="server" CssClass="table table-striped table-bordered table-hover" EmptyDataText="No Records Found" DataKeyNames="RoleID"
            AllowPaging="true" AutoGenerateColumns="false" AutoGenerateDeleteButton="false" RowStyle-HorizontalAlign="Left" OnPageIndexChanging="GrdRole_PageIndexChanging"
            HeaderStyle-HorizontalAlign="Center" GridLines="None" PageSize="10" RowStyle-CssClass="gradeX" AlternatingRowStyle-CssClass="gradeA">
        <columns>
           <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="chkCtrl" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="Name" HeaderText="Name"  />
        <asp:BoundField DataField="EmployeeNo" HeaderText="EmployeeNo"  />
        </columns>
            <PagerStyle HorizontalAlign="Right" CssClass="pagination-ys" />
        </asp:GridView>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-3 col-sm-9">
            <td>
                <asp:Button ID="submit_button" Text="Check" CssClass="btn btn-success" runat="server" OnClick="checkOuput" />
            </td>
        </div>
    </div>
</div>e

我的 C#

 protected void checkOuput(object sender, EventArgs e)
{
    string data = "";
    foreach (GridViewRow row in GrdRole.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            CheckBox chkRow = (row.Cells[0].FindControl("chkCtrl") as CheckBox);
            if (chkRow.Checked)
            {
                string EmployeeNo = row.Cells[2].Text;
                data = data + EmployeeNo + " ,  " ;
            }
        }
    }
    ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + data + "');", true);
}

当我点击检查按钮时,我不确定我在哪里做错了,弹出窗口是空的。请指导我,谢谢。

【问题讨论】:

    标签: c# asp.net gridview checkbox


    【解决方案1】:

    确保您使用!IsPostBackpage_load 中仅绑定一次GridView

    if (!IsPostBack)
    {
     BindGridView();
    }
    

    同时检查页面是否有ViewStateMode="Disabled",而不是使用ViewStateMode="Enabled"启用它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 2011-03-02
      • 2020-03-08
      • 1970-01-01
      相关资源
      最近更新 更多