【问题标题】:How to get selected rows values using check box in GridView asp.net?如何使用 GridView asp.net 中的复选框获取选定的行值?
【发布时间】:2014-08-09 21:50:00
【问题描述】:

我无法通过选中复选框来获取 Grid 中的行值。选中的复选框在后面的代码中总是错误的。请帮我解决这个问题。提前致谢

这是我的 aspx 代码:

<asp:GridView ID="resumeSearchGrid" DataKeyNames="CandidateID"  CellPadding="5" runat="server" Width="100%" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="chkSelect" runat="server"/>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="CandidateID" HeaderText="CandidateID" Visible="false" />
        <asp:BoundField DataField="CandidateName" HeaderText="Name" />
        <asp:BoundField DataField="EmailID" HeaderText=" Email Id" />
    </Columns>
</asp:GridView>
<asp:Button ID="Button1" class="button"  runat="server" 
Text="Send to client" onclick="Button1_Click"></asp:Button>

这是我的代码:

protected void Button1_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvrow in resumeSearchGrid.Rows)
    {
        CheckBox chk = (CheckBox)gvrow.FindControl("chkSelect");

        if (chk != null && chk.Checked)
        {
            Name += resumeSearchGrid.DataKeys[gvrow.RowIndex].Value.ToString() + ',';
            eMail += gvrow.Cells[2].Text + ',';
        }
    }
}

【问题讨论】:

  • 您将 chk 设为 null 还是将其检查为 false?
  • 您的页面上有更新面板吗?有时它们会导致此类问题
  • 最初我没有检查更新面板,然后检查了更新面板。在这两种情况下它都不起作用。还是我越来越假了。
  • 看起来很奇怪!!尝试在您的页面中创建另一个网格并仅在其中放置一个复选框,看看您是否能够获取其选中值。
  • 您是否在复选框列表的内容面板中放置了提交按钮的触发器?

标签: c# asp.net gridview


【解决方案1】:

您在FindControl 中写chkSelectlist 而不是chkSelect

CheckBox chk = (CheckBox)gvrow.FindControl("chkSelectlist");

如果条件只写

if (chk.Checked)
{

}

【讨论】:

  • 我试过了。但在那种情况下,我仍然是假的。我不知道为什么它不起作用。我创建了一个示例应用程序,它工作正常。但在我的应用程序中只有它不起作用
  • @user3336505 在页面加载事件中你的网格绑定在 if (!IsPostBack) 或 Not 中?
  • 天啊..没有。我没有使用(!IsPostBack)。我现在加了。它的工作。
猜你喜欢
  • 1970-01-01
  • 2011-03-02
  • 2013-10-25
  • 2017-11-03
  • 1970-01-01
  • 2012-03-06
  • 2014-07-14
  • 2017-01-16
  • 2018-05-08
相关资源
最近更新 更多