.net 如何使用DataNavigateUrlField为DataGrid中的HyperLinkColumn设置多个字段

.net 如何使用DataNavigateUrlField为DataGrid中的HyperLinkColumn设置多个字段,.net,datagrid,.net,Datagrid,我正在尝试创建一个带有HyperLinkColumn的DataGrid,该列使用两个字段作为url。 我用的是Vb,VS2005,.NET2 我得到了这个例外: 在所选数据源上找不到名为“PrimKey,IsCommercial”的字段或属性 我不知道为什么,我已经检查了以下内容 这些字段都拼写正确 字段位于数据源中 所有字段都作为简单绑定列工作 下面是我正在尝试做的一个例子 <asp:HyperLinkColumn SortExpression="LogNo" DataNavigat

我正在尝试创建一个带有HyperLinkColumn的DataGrid,该列使用两个字段作为url。
我用的是Vb,VS2005,.NET2

我得到了这个例外:
在所选数据源上找不到名为“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>

我认为不支持多个字段,但您可以轻松地将DataGrid转换为其HyperLinkField支持的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>

我认为不支持多个字段,但您可以轻松地将DataGrid转换为其HyperLinkField支持的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>

我最终用一个TemplateColumn解决了这个问题。
例如:


我最终用一个TemplateColumn解决了这个问题。
例如:



我支持一个旧版应用程序,在这种情况下,更改为GridView不是一个选项。我尝试了您的替代方案,但它会生成此异常。只有具有数据绑定事件的对象才支持数据绑定表达式。System.Web.UI.WebControl.HyperLinkColumn没有数据绑定事件。我支持旧版应用程序,在这种情况下,更改为GridView不是一个选项。我尝试了您的替代方案,但它会生成此异常。只有具有数据绑定事件的对象才支持数据绑定表达式。System.Web.UI.WebControl.HyperLinkColumn没有数据绑定事件。