单击模板字段命令按钮时获取gridview单元格值

本文关键字:获取 gridview 单元格 按钮 字段 命令 单击 | 更新日期: 2023-09-27 18:03:23

我在模板字段中有一个命令按钮的gridview。如果不首先选择行,我如何在命令按钮单击事件上获取第一个单元格值?

为了测试,我试图设置一个标签的文本值,但我认为,作为行不是首先选择,它不会工作

Label3.Text = "test " + GridView1.SelectedRow.Cells[1].Text;

单击模板字段命令按钮时获取gridview单元格值

您可以将行号作为按钮中的CommandArgument发送。

<asp:Button ID="Button1" CommandArgument='<%# Container.DataItemIndex %>' OnCommand="Button1_Command" runat="server" Text="Button" />

并从后面代码中的行和列中获取正确的值。

protected void Button1_Command(object sender, CommandEventArgs e)
{
    Label3.Text = "test " + GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Text;    
}

正如后来发现的,你需要将GridView的绑定封装到一个IsPostBack中,否则你会得到一个"Invalid postback or callback argument"的错误。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridView1.DataSource = myDataSource;
        GridView1.DataBind();
    }
}

注意,像这样搜索GridView单元格(Rows[0].Cells[1].Text)工作与BoundField列,而不是TemplateField和自动生成列。