如果我知道gridview中的列名,如何获取单元格值

时间:2013-07-29 03:58:43

标签: asp.net gridview datatable

我有'GridView1'和'label1',如下所示:

ID___________NAME___________SELECT

1 --------- NAME1 --------- button

2 --------- NAME2 --------- button

3 --------- NAME3 --------- button

4 --------- NAME4 --------- button

lable1 = null

如果我点击SELECT列中的任何按钮,我想显示我选择的人的ID到label1,例如,如果我点击第一行的按钮,它应该显示:

label1: You have selected people with ID = 1

我该怎么做?

4 个答案:

答案 0 :(得分:4)

您可以使用以下源代码

<asp:ImageButton ID="btnConfirm" runat="server" CommandArgument='<%# Container.DataItemIndex %>' OnClick="btnConfirm_Click"  />

和这个cs代码


protected void btnHClear_Click(object sender, ImageClickEventArgs e)
{
    label1.Text = GridView1.Rows[Convert.ToInt32(((ImageButton)sender).CommandArgument.ToString())].Cells[1].Text;
}

答案 1 :(得分:3)

在gridview SelectedIndexChanged事件中,您可以获得以下ID

var id = GridView1.DataKeys[row.RowIndex].Values[0];

但您需要在aspx页面的网格视图标记中设置DataKeyNames="ID"

现在使用id值可以设置标签文本。

Label1.Text = "You have selected people with ID = " +id;

答案 2 :(得分:3)

如您所示,使用GridView,仅指3列。

对于具有按钮的SELECT列,将按钮的CommandName属性设置为选择。

<asp:TemplateField>
    <ItemTemplate>
    <asp:Button ID="selectBTN" runat="server" CommandName="Select" />
    </ItemTemplate>
</asp:TemplateField>

为GridView设置OnSelectedIndexChanged事件。

<asp:GridView ID="GridView1" DataKeyNames="CustomerID"  runat="server"     
      OnSelectedIndexChanged="GridView1_Selected" >

现在在事件处理程序中将Label值设置为:

 protected void GridView1_Selected(object sender, System.EventArgs e)
        {
            GridViewRow row = GridView1.SelectedRow; // Get the selected row 
           // Get the Column value, Cells[0] represents first column: ID ,
           //Cells[1] represents second column : NAME, etc...
            labelName.Text = row.Cells[0].Text;   

        }

答案 3 :(得分:2)

请看下面的链接:

http://www.c-sharpcorner.com/forums/thread/153329/changing-gridview-row-color-on-row-command.aspx

您必须在此部分进行更改

if (e.CommandName == "Select")
    {            
        int rowIndex = Convert.ToInt32(e.CommandArgument);
        GridViewRow row = gviewRetailers.Rows[index];
        Label1.Text =  "You have selected people with ID = " + row.Cells[0].Text;
    }

谢谢, 亚太区首席技术官Matt