0

在 ASP.NET GridView 控件中

  • 是否可以在不使用事件的情况下选择一行OnSelectedIndexChanged

    例如,假设我想为网格中的每一行在 GridView 上有一个名为“ProcessThis”的自定义按钮,并且我想要一个OnClick方法来访问选定的行值。

  • 如果那是不可能的,那么是否可以更改生成的选择按钮的文本和位置OnSelectedIndexChanged

4

3 回答 3

1

您可以简单地将自定义按钮添加到GridViewCommandName属性为Select. 然后SelectedIndexChanged像往常一样使用该事件。

为什么你说你不希望SelectedIndexChanged事件触发?请注意,即使您通过调用该GridView.SelectRow方法更改代码中选定的索引,此事件也会触发。

于 2013-05-22T12:34:06.697 回答
1

是的,可以在不使用 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>

您必须CommandNameGridView.

希望您理解并为您工作。

于 2013-05-22T12:41:01.527 回答
0

为此,您可以使用RowCommandgridview 上的事件。每次在 gridview 中单击按钮时都会触发它。

如果您DataKeys在标记中使用该属性,您可以例如从按钮的行中获取特定的 ID,以便处理特定的行。文档中提供了示例。

于 2013-05-22T12:25:43.347 回答