文章摘自:
http://www.cnblogs.com/sdikerdong/archive/2011/07/31/2122724.html
今天在做案子時候遇到用GridView控件時,想在里面有一個hyperlink,點擊后彈出窗口再顯示另外頁面??墒窃谟肈ataNavigateUrlFormatString屬性時,發(fā)現(xiàn)<hyperlinkFiled DataNavigateUrlFormatString="javascript:window.open('abc.aspx?...."這樣寫后,原來可以點擊的hyperlink變成不可點擊了。上網(wǎng)找有文章說是這是微軟的Bug。在DataNavigateUrlFormatString中不能有“:”。網(wǎng)上給出的解決辦法有兩種:一種是將上述代碼用itemTemplate來代替:
<asp:GridView ID="summaryGrid" runat="server"
AutoGenerateColumns="False"
...>
...
<Columns>
<%-- HACK: Ideally, we would just use an asp:HyperLinkField,
but there's a bug when specifying "javascript:" in the
DataNavigateUrlFormatString:
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=102300
As a workaround, use a TemplateField instead. --%>
<asp:TemplateField>
<HeaderTemplate>Date</HeaderTemplate>
<HeaderStyle CssClass="dateColumn" />
<ItemTemplate>
<a href='javascript:ShowItemDetail(<%# Eval("Id")%>)'>
<%# Eval("CreateTime", "{0:ddd MMM dd HH:mm}") %>
</a>
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>
另外一種是用DataTextFormatString代替DataNavigateUrlFormatString。
http://www.vbforums.com/showthread.php?t=521952
<asp:HyperLinkField DataTextField="ID Control" DataTextFormatString="<a href=javascript:openWindow('{0}');>View</a>" />