2

我有这样的“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

4 回答 4

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;
}

于 2013-07-29T04:14:25.213 回答
3

在 gridviewSelectedIndexChanged事件中,您可以获得如下 id

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

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

现在通过使用 id 值,您可以设置标签文本。

Label1.Text = "You have selected people with ID = " +id;
于 2013-07-29T04:07:40.027 回答
3

如您所见,使用您的 GridView 仅意味着 3 列。

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

<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;   

        }
于 2013-07-29T05:20:26.347 回答
2

看看下面的链接:

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

在这部分您必须更改的 IN

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;
    }

谢谢, 海特什

于 2013-07-29T04:20:34.457 回答