C#Gridview禁用onRowCommand回发

问题描述 投票:0回答:1

我希望能够在我的gridview中选择一个或多个行,以便能够将多个行数据存储在一个对象中,然后对对象列表执行所需的任何操作。

在ASP代码中,我有一个标准的gridview和一个带有ItemTemplate的TemplateField(已放置按钮)。命令名称为Switch(与C#相关)。下面是我的templateField代码(我已经尝试过AutoPostBack="False",在这种情况下不起作用)

<asp:TemplateField>
    <ItemTemplate>
        <asp:Button CssClass="buttonStuff" Text="Switch" runat="server" CommandName="Switch" CommandArgument="<%# Container.DataItemIndex %>" AutoPostBack="False" />
    </ItemTemplate>
</asp:TemplateField>

现在在任何行上单击Switch按钮时,我们将获取正确的行索引并在C#中获取我们的值,下面的代码:

protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{          
        if (e.CommandName == "Switch")
        {
           //Determine the RowIndex of the Row whose Button was clicked.
           int rowIndex = Convert.ToInt32(e.CommandArgument);

           //Reference the GridView Row.
           GridViewRow row = GridView2.Rows[rowIndex];

            //Perform what needs to do done
        }
    }

现在,我已经获取了正确的值,并且可以为单击一次按钮做我需要做的事情,但是问题是,我不能只选择多行,而只能选择一行,因为当我单击按钮时页面会不断触发一次。

我相信,在这种情况下,我希望禁用此自动回发功能,并手动将其添加。

任何建议将不胜感激,谢谢

c# asp.net .net gridview
1个回答
0
投票

我通过使用复选框找到了解决问题的好方法,下面的链接是我使用的链接。

https://www.c-sharpcorner.com/UploadFile/009464/use-checkbox-inside-gridview-in-Asp-Net/

© www.soinside.com 2019 - 2024. All rights reserved.