如何使用GridView中的控件在ModalPopupExtender中设置TargetContrlID

时间:2011-05-07 15:43:51

标签: asp.net gridview ajaxcontroltoolkit modalpopupextender

如何将TragetContriID设置为HyperLink内的GridView

我试过了:

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

但我有一个错误:没有GridView1$HyperLink1

1 个答案:

答案 0 :(得分:8)

单击控件时,设置TargetControlID的{​​{1}}基本上会触发该ModalPopup的客户端显示功能。所以你需要自己连接控件。

首先,由于ModalPopupExtender需要ModalPopupExtender,您应该添加一个虚拟控件来将模态弹出窗口链接到:

TargetControlID

并将<asp:Button runat="server" ID="HiddenTargetControlForModalPopup" style="display:none"/> ModalPopupExtender与其相关联

TargetControlID

所以<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="Panel1" CancelControlID="btnCancel" OnCancelScript="HideModalPopup()" TargetControlID="HiddenTargetControlForModalPopup"> </asp:ModalPopupExtender> 现在有一个什么都不做的目标。现在我们现在需要做目标的工作。您需要一个javascript函数来显示客户端的ModalPopup。

ModalPopupExtender

然后,您应该将<script type="text/javascript"> var ModalPopup='<%= ModalPopupExtender1.ClientID %>'; function ShowModalPopup() { // show the Popup $find(ModalPopup).show(); } </script> 中控件的OnClientClick事件映射到此javascript函数。从您的代码中,我发现您使用gridview,我认为它不支持asp:HyperLink事件,因此您可能需要将其切换为OnClientClick

asp:LinkButton