У меня есть проблема, где мое поле Hyperlink в Asp.net GridView не принимает функцию JavaScript, которая откроет всплывающее диалоговое окно.
Я использую следующий отрывок
<asp:GridView>
<asp:HyperLinkField
DataTextField="SomeColumn" HeaderText="Some Column Text"
SortExpression="SomeColumn"
HeaderStyle-HorizontalAlign="Left"
DataNavigateUrlFormatString="javascript:LaunchSomePopupdialog({0})"
DataNavigateUrlFields="Id"
ItemStyle-Font-Underline="true" />
</asp:GridView>
Однако, когда я использую URL страницы, он работает, например:
DataNavigateUrlFormatString="~/SomeOtherPage.aspx?Id={0}"
Существует ли способ, которым я могу сделать эту работу со своей функцией JavaScript?
Я думаю, вам нужно изменить его на обычный тег внутри поля шаблона без использования поля asp: hyperlink. Затем вы можете сделать что-то вроде этого:
<asp:TemplateField HeaderText="Some Column Text" ItemStyle-Font-Underline="true">
<ItemTemplate>
<a href="#" onclick="javascript:LaunchYourStuff('<%#Eval("YourColumnID")%>')"><%#Eval("YourColumnDisplayText")%></a>
</ItemTemplate>
</asp:TemplateField>
Все ваши атрибуты asp: hyperlinkfield помещаются в тег templateField.
ИЗМЕНИТЬ
Вы не можете разместить javascript в поле гиперссылки, так как это по замыслу