2011-05-07 44 views
7

如何將TragetContriID設置爲GridView內的HyperLink如何使用GridView中的控件在ModalPopupExtender中設置TargetContrlID

我嘗試這樣做:

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
         PopupControlID="Panel1" 
         CancelControlID="btnCancel" 
         OnCancelScript="HideModalPopup()" 
         TargetControlID="GridView1$HyperLink1"> 
</asp:ModalPopupExtender> 

但我有一個錯誤:沒有GridView1$HyperLink1

回答

8

設置TargetControlIDModalPopupExtender的基本觸發ModalPopup的客戶端顯示功能,當控制點擊。所以你需要自己連接控制。

首先,由於ModalPopupExtender需要TargetControlID,你應該添加一個虛擬控制的模式彈出鏈接:

<asp:Button runat="server" 
      ID="HiddenTargetControlForModalPopup" 
      style="display:none"/> 

和鏈接ModalPopupExtenderTargetControlID

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
         PopupControlID="Panel1" 
         CancelControlID="btnCancel" 
         OnCancelScript="HideModalPopup()" 
         TargetControlID="HiddenTargetControlForModalPopup"> 
</asp:ModalPopupExtender> 

所以ModalPopupExtender現在有一個什麼都不做的目標。現在我們需要完成目標的工作。你需要一個JavaScript函數來顯示來自客戶端的ModalPopup。

<script type="text/javascript"> 
    var ModalPopup='<%= ModalPopupExtender1.ClientID %>'; 

    function ShowModalPopup() { 
     // show the Popup  
     $find(ModalPopup).show(); 
    } 
</script> 

那麼你應該在你的gridviewOnClientClick事件控制映射到這個javascript函數。從你的代碼中,我看到你使用了asp:HyperLink,我不認爲它支持OnClientClick事件,所以你可能需要將它切換到asp:LinkButton

<asp:LinkButton ID="LinkButton1" runat="server" 
       OnClientClick="ShowModalPopup()" /> 
+0

嗨我正在使用您的代碼,但我得到一個錯誤.. Microsoft JScript運行時錯誤:Sys.ArgumentNullException:值不能爲空。 參數名稱:處理器 – software 2013-04-15 14:48:25

+0

請讓我知道如何解決這個 – software 2013-04-15 14:48:56

+0

對我來說工作得很好,經過很好測試的解決方案。你的錯誤可能在別的地方。嘗試調試以查看錯誤發生的位置。 – DavRob60 2013-04-15 14:55:52

相關問題