Asp.net 将GridView绑定到字符串数组。超链接字段的问题
我知道可以使用感叹号将简单类型的数组(如字符串)绑定到GridView,如下所示Asp.net 将GridView绑定到字符串数组。超链接字段的问题,asp.net,data-binding,Asp.net,Data Binding,我知道可以使用感叹号将简单类型的数组(如字符串)绑定到GridView,如下所示 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:BoundField HeaderText="Array Field" DataField="!" /> </Columns> </asp:GridV
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Array Field" DataField="!" />
</Columns>
</asp:GridView>
但DataNavigationEurlfields似乎并非如此
<asp:HyperLinkField DataNavigateUrlFields="!" DataNavigateUrlFormatString="RoleInformation.aspx?role={0}" Text="Manage users" />
我得到以下错误:
名为“!”的字段或属性在所选数据源上找不到
大多数人可能甚至不知道如何使用
代码>我怀疑的字段。当我读到你的问题时,它实际上让我想起了我读过但从未实际使用过的那个功能。考虑到这一点,我认为没有办法处理这种类型的字段,因为它可能在HyperLinkField实现中被遗忘了(只是一个猜测)。您只需快速转换到命名属性,就不会有任何问题:
例如:
<asp:GridView ID="grdTest" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Array Field" DataField="data" />
<asp:HyperLinkField DataNavigateUrlFields="data" DataNavigateUrlFormatString="RoleInformation.aspx?role={0}" Text="Manage users" />
</Columns>
</asp:GridView>
它不会取代直接进行代码>但这是一个简单的解决方案,可以绕过绑定到简单数组的问题,即使代码>没有实现,每个字段类型可能都需要实现它。这几乎就是我所做的now@Sergej安德列耶夫:我认为没有别的办法。如果你真的想办法得到这些代码>工作留下评论,但我认为它没有实现。
string[] testArray = { "1", "2", "3" };
grdTest.DataSource = testArray.Select(a => new { data = a });
grdTest.DataBind();