c# - 为什么我的复选框没有注册为已选中?

标签 c# asp.net gridview checkbox

我一直在努力处理 ASP .NET/C# 中 GridView 中的 CheckBox 列。完成后,此页面应显示我的办公室当前的空缺职位。人们应该能够检查他们想要申请的职位数量,然后继续到下一个屏幕(实际申请开始的地方)。

这是我在单击“立即申请”按钮时运行的例程。在尝试了我的老板和这里的人建议的其他十几种组合之后,我在这里找到了这段代码。当我运行它时,isChecked = false,因此它不会在该 if 语句中运行任何内容。我是否遗漏了一些明显的东西?

for (int i = GridView1.Rows.Count - 1; i > -1; i--)
{
    GridViewRow row = GridView1.Rows[i];
    bool isChecked = ((CheckBox)row.FindControl("cbx_apply")).Checked;

    if (isChecked)
    {
        try
        {
            Response.Write("Hello world");
            PositionsAppliedFor.Add(Convert.ToInt32((GridView1.Rows[i].Cells[1].Text)));
            Session["SelectedPositionIDList"] = PositionsAppliedFor;
        }
        catch (Exception error)
        {
            Response.Write(error.Message);
        }
    }
}

编辑:此外,我意识到我在 if 语句中所做的事情并不重要。我只是想让它做/做某事/。

ASP.NET:

<asp:GridView ID="GridView1" runat="server" 
              onselectedindexchanged="UpdateSelectedPostions">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="cbx_apply" runat="server" 
                              OnCheckedChanged="UpdateSelectedPostions"
                              AutoPostBack="false"/>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

很简单,可能遗漏了很多。我是 ASP.NET 的/非常/新手。

这是我为网格加载数据并绑定(bind)它的地方:

string sqlstatement = "SELECT * FROM dbo.POSITION WHERE PositionStartDate < GETDATE() AND PositionEndDate > GETDATE()";
command = new SqlCommand(sqlstatement, connection);
ds = new DataSet();
adapter = new SqlDataAdapter(command);
builder = new SqlCommandBuilder(adapter);
adapter.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
connection.Close();

希望这就足够了,因为它真的是我的全部。我还没有在页面上放置任何其他内容 - 只是想让这些愚蠢的复选框同意我的意见。

最佳答案

确保您的绑定(bind)代码位于这样的 block 中:

if (!Page.IsPostBack)
{

}

否则,您将在每次回发时重新创建复选框,从而丢失它们已被选中的事实。

关于c# - 为什么我的复选框没有注册为已选中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11209038/

相关文章:

css - ASP 编辑 GridView 样式

c# - 如何在不同型号的 Controller 之间共享代码?

c# - IServiceProvider.GetService(Type serviceType) 的目的是什么?

asp.net - 在 ASP.Net MVC 中使用 @Html.AntiForgeryToken() 提供 CSRF token 的替代方法

影响 AJAX 控件的 CSS

jquery - asp.net webforms ajax 更新 gridview

asp.net - 回发后 GridView 未正确重新绑定(bind)

c# - 使用属性检查空参数

C# "Method not found"未使用反射的运行时异常

php - 支持ASP.NET的IIS和支持PHP的WAMP可以在同一台服务器上共存吗?