这是我的GridView:
<asp:GridView ID="GridViewVG" OnRowCommend="GridViewVG_RowCommand" runat="server"/>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBoxVG" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="itemName" Text='<% # Eval("itemName") %>' runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在c#中,我有一个方法来获取用户选择的项目:
protected List<string> GridViewVG_RowCommand(object sender, GridViewUpdateEventArgs e)
{
List<string> l = new List<string>();
foreach (GridViewRow row in GridViewVG.Rows)
if (row.RowType == DataControlRowType.DataRow)
{
string s = (this.GridViewVG.Rows[e.RowIndex].FindControl("itemName") as Label).Text.Trim();
CheckBox CheckBoxVG = (this.GridViewVG.Rows[e.RowIndex].FindControl("CheckBoxVG") as CheckBox);
if (CheckBoxVG.Checked)
l.Add(s);
}
return l;
}
我想在另一个方法中使用这个列表。
这是我尝试过的:
protected void selectItemsBT2_Click(object sender, EventArgs e)
{
List<string> l = GridViewVG_RowCommand(sender, (GridViewUpdateEventArgs)e);
int[] recipeIdList = w.GetRecipeIdsWithAllItems(l.ToArray());
}
它不起作用,我不知道我还能做些什么来得到这个列表。
请参考链接
https://www.c-sharpcorner.com/UploadFile/syedshakeer/rowcommand-event-in-gridview/
获取GridView RowCommand中的DataKey值