在 ASP.NET GridView 控件中
是否可以在不使用事件的情况下选择一行
OnSelectedIndexChanged
?例如,假设我想为网格中的每一行在 GridView 上有一个名为“ProcessThis”的自定义按钮,并且我想要一个
OnClick
方法来访问选定的行值。如果那是不可能的,那么是否可以更改生成的选择按钮的文本和位置
OnSelectedIndexChanged
?
您可以简单地将自定义按钮添加到GridView
其CommandName
属性为Select
. 然后SelectedIndexChanged
像往常一样使用该事件。
为什么你说你不希望SelectedIndexChanged
事件触发?请注意,即使您通过调用该GridView.SelectRow
方法更改代码中选定的索引,此事件也会触发。
是的,可以在不使用 OnSelectedIndexChanged 事件的情况下选择一行。
您必须使用类似的RowCommand事件GridView
C#
protected void Gridview1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ProcessThis")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = Gridview1.Rows[index];
// Do what ever you want....
}
}
.aspx
<asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="False"
onrowcommand="Gridview1_RowCommand">
<Columns>
<asp:ButtonField Text="Process This" CommandName="ProcessThis" />
</Columns>
</asp:GridView>
您必须CommandName
在GridView
.
希望您理解并为您工作。
为此,您可以使用RowCommand
gridview 上的事件。每次在 gridview 中单击按钮时都会触发它。
如果您DataKeys
在标记中使用该属性,您可以例如从按钮的行中获取特定的 ID,以便处理特定的行。文档中提供了示例。