0

ページをポップアップとして開くためのJavaScriptがあります。次に、データグリッドで呼び出す必要があるため、asp ハイパーリンク コントロールを追加しました。Web を検索して例を見つけましたが、「サーバー タグの形式が正しくありません。」私は多くの時間を費やしましたが、コードを修正する方法がわかりません。誰かが私にそれを指摘しますか?前もって感謝します。

aspx ページの私のコード

<asp:TemplateColumn headertext="Date Received" HeaderStyle-Width="11%" Itemstyle-wrap="False" Visible="true">
    <ItemTemplate>
        <asp:HyperLink ID="hyTranscript" runat="server" NavigateUrl="#" onclick="javascript:openWin('~/popAddEditReasons.aspx?page=Edit&ID=" & Eval("ID") &"','EditTransfer','width=650,height=325'); return false;")>
            <%#DataBinder.Eval(Container.DataItem, "Received_Date", "{0:d MMM yyyy}").ToUpper%>
        </asp:HyperLink>
    </ItemTemplate>
</asp:TemplateColumn>
4

2 に答える 2

2

サーバー側のイベントが必要ない場合、最も簡単な方法は、ASP.Net HyperLink の代わりに html a タグを使用することです。

次のコードは基本的に、外部の JavaScript 関数を呼び出してウィンドウを開きます。onclick 内にリンクを作成するよりもはるかにクリーンです。

<asp:HyperLink ID="hyTranscript" runat="server" NavigateUrl="#" 
   onclick='<%# string.Format("openWindow(\"{0}\");", Eval("ID")) %>'>
    <%# Eval("Received_Date", "{0:d MMM yyyy}").ToUpper() %>
</asp:HyperLink>

<!-- I prefer this a tag -->
<a onclick='openWindow("<%# Eval("ID") %>")' href="#">
   <%# Eval("Received_Date", "{0:d MMM yyyy}").ToUpper() %>
</a>

<script type="text/javascript">
    function openWindow(id) {
        // Note: you cannot use ~/ at client side.
        var url = "/popAddEditReasons.aspx?page=Edit&ID=" + id;
        window.open(url, "EditTransfer", "width=650,height=325");
    }
</script>
于 2013-06-11T17:29:44.390 に答える