Я пытаюсь использовать asp: HyperLinkField внутри TemplateField в GridView, но ASP не распознает HyperLinkField, когда он используется внутри TemplateField.Это только кажется, что распознает asp: HyperLink.Я устанавливаю условие, которое отображает «NA» без гиперссылки, если база данных возвращает пустое значение «», иначе должно отображаться HyperLink.Вот код:
<asp:TemplateField HeaderText="My Header">
<ItemTemplate>
<asp:HyperLinkField runat="server" DataTextField="Contracts" datanavigateurlfields="Contracts" DataNavigateUrlFormatString='<%# Convert.ToString(Eval("Contracts")) == "" ? "NA" : "http://{0}" %>'></asp:HyperLinkField>
</ItemTemplate>
</asp:TemplateField>
Я пробовал это, используя вместо этого HyperLink, и он работает, но фактически не возвращает данные из базы данных, он фактически возвращает текст "http://{0}" в моем столбце.Я предполагаю, что, поскольку я использую «Текст» вместо «NavigateUrl», но при использовании последнего данные вообще не отображаются .:
<asp:TemplateField HeaderText="My Header">
<ItemTemplate>
<asp:HyperLink runat="server" DataTextField="Contracts" datanavigateurlfields="Contracts" Text='<%# Convert.ToString(Eval("Contracts")) == "" ? "NA" : "http://{0}" %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>