列表<;元组<;T1、T2>>;作为GridView的DataSource

本文关键字:lt gt 作为 GridView DataSource 元组 T1 列表 T2 | 更新日期: 2023-09-27 17:58:30

我想为我的GridView添加一个List<Tuple<T1,T2>>作为DataSource

"那就去做吧!"

是的,这不是真正的问题,问题是访问GridView中的值。

这是我的代码:

List<Tuple<Group, string>> userGroups = Util.PrepareGroups((string[][])Session["userGroups"]);
            gridGroups.DataSource = userGroups;
            gridGroups.DataBind();

DataBind抛出一个异常,告诉我Item1.Name不存在,说到这里,这是我的标记:

<asp:GridView runat="server" ID="gridGroups" CssClass="grid gridGroups" AutoGenerateColumns="false">
            <Columns>
            <asp:BoundField meta:resourcekey="gridGroupsName" DataField="Item1.Name" />
            <asp:BoundField meta:resourcekey="gridGroupsFunction" DataField="Item2" />
            </Columns>
        </asp:GridView>

不用说,Item1是群,Namestring-性质
他(是的,他,我的IDE叫Bob)显然找不到Item1.Name,有什么方法可以逃离.吗?

谢谢,

Dennis

列表<;元组<;T1、T2>>;作为GridView的DataSource

订阅代码背后的RowDataBound事件,该事件将为绑定的每一行触发,您可以使用提供给该事件的参数来获取当前数据项-您会发现用这种方式获取值比试图篡改数据绑定语法等更容易。

(ps-记住要检查事件处理程序中的rowtype属性,这很容易出错-如果您试图访问页眉/页脚行的数据对象,您会得到意外的结果/错误!-上面的链接有一些代码可以证明这一点)