我有'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
我该怎么做?
答案 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