我正在尝试使用HyperLinkColumn创建一个DataGrid,它使用两个字段作为URL 我正在使用Vb,VS 2005,.net 2
我得到了这个例外:
“在所选数据源上找不到名为'PrimKey,IsCommercial'的字段或属性。”
我不知道为什么,我已经检查了以下内容。
这是我想要做的一个例子。
<asp:HyperLinkColumn SortExpression="LogNo" DataNavigateUrlField="PrimKey, IsCommercial" DataNavigateUrlFormatString="../Clarifications.aspx?PrimKey={0}&IsCommercial={1}" DataTextField="LogNo" HeaderText="LogNo" ItemStyle-Wrap="false"></asp:HyperLinkColumn>
答案 0 :(得分:2)
我最终用TemplateColumn解决了这个问题 例如:
<asp:TemplateColumn HeaderText="LogNo" SortExpression="LogNo">
<ItemTemplate>
<a href="../Clarifications.aspx?PrimKey=<%# Container.DataItem("PrimKey").ToString() & "&IsCommercial=" & Container.DataItem("IsCommercial") %>"><%#Eval("LogNo")%></a>
</ItemTemplate>
</asp:TemplateColumn>
答案 1 :(得分:1)
我不认为DataNavigateUrlField支持多个字段,但您可以轻松地将DataGrid转换为其HyperLinkField支持DataNavigateUrlFields
的GridView或者,如果您仍想使用DataGrid,则需要手动构建NavigateUrl,如下所示:
<强>更新强>
我应该在发布之前更彻底地测试之前的建议..是的,它本来是在一个TemplateColumn中:
<asp:TemplateColumn SortExpression="LogNo" HeaderText="LogNo">
<ItemTemplate>
<asp:HyperLink runat="server" NavigateUrl='<%# "../Clarifications.aspx?PrimKey=" & Container.DataItem("PrimKey") & "&IsCommercial=" & Container.DataItem("IsCommercial") %>'><%# Container.DataItem("LogNo")%></asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>