列表<元组<T1,T2>&GT;作为GridView的DataSource </tuple <t1,t2>

时间:2011-06-06 07:25:19

标签: c# asp.net list gridview tuples

我想为List<Tuple<T1,T2>>添加DataSource GridView

“然后去做!”

是的,这不是问题所在,问题是访问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,有没有办法逃脱.

谢谢,

丹尼斯

1 个答案:

答案 0 :(得分:3)

订阅代码隐藏中的RowDataBound事件,该事件将触发绑定的每一行,您可以使用提供给事件的参数来获取当前数据项 - 您将找到它比尝试使用数据绑定语法等更容易获得您的值。

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