gpt4 book ai didi

c# - 获取 GridView 行

转载 作者:行者123 更新时间:2023-11-30 14:38:54 24 4
gpt4 key购买 nike

我有一个 GridView,我将其绑定(bind)到 Page_Load 上的 SqlDataReader。它有一个带有按钮的列,我试图在使用以下代码单击按钮时获取该行:

int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];

编辑:从评论区粘贴 .aspx 页面

 <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" OnRowCommand="GridView1_RowCommand" DataKeyNames="id" GridLines="None"> <AlternatingRowStyle BackColor="White" /> 
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnChange" runat="server" Text="Change" CommandName="Test" Visible='<%# Convert.ToBoolean(Eval("Tested")) == true ? true : false %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</aspx:GridView>

我收到以下错误:“System.FormatException:输入字符串的格式不正确。”在线 'int index = Convert.ToInt32(e.CommandArgument);'。

有什么想法吗?

最佳答案

您需要检查单击了 GridView 行中的哪个命令。您的标记应相应映射。请参阅下面的示例。您获得的 e.CommandArgument 可能与您的按钮点击不对应。

在代码隐藏中:

    void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
// If multiple buttons are used in a GridView control, use the CommandName property to determine which button was clicked.
if(e.CommandName=="Add")
{
// Convert the row index stored in the CommandArgument property to an Integer.
int index = Convert.ToInt32(e.CommandArgument);

// Retrieve the row that contains the button clicked by the user from the Rows collection.
GridViewRow row = CustomersGridView.Rows[index];

// additional logic...
}
// additional logic...
}

在标记中:

另请确保您已正确设置 CommandArgument 属性。示例如下:

<asp:Button (...) CommandArgument="<%# Container.DataItemIndex %>" />

或者使用按钮区域

<asp:ButtonField ButtonType="button" CommandName="Add" Text="Add" />

关于c# - 获取 GridView 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7125929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com