如何将TragetContriID
设置为HyperLink
内部的GridView
?
我尝试过这个:
<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
PopupControlID="Panel1"
CancelControlID="btnCancel"
OnCancelScript="HideModalPopup()"
TargetControlID="GridView1$HyperLink1">
</asp:ModalPopupExtender>
但是我有一个错误:没有GridView1$HyperLink1
设置TargetControlID
的ModalPopupExtender
基本上会在单击控件时触发该ModalPopup的客户端Show功能。因此,您需要自己连接控件。
首先,由于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>
因此ModalPopupExtender
现在有了一个不执行任何操作的目标。现在,我们需要完成目标的工作。您需要一个JavaScript函数才能从客户端显示ModalPopup。
<script type="text/javascript">
var ModalPopup='<%= ModalPopupExtender1.ClientID %>';
function ShowModalPopup() {
// show the Popup
$find(ModalPopup).show();
}
</script>
然后您应该将OnClientClick
中控件的gridview
事件映射到此javascript函数。从您的代码中,我看到您使用了asp:HyperLink
,但我认为它不支持OnClientClick
事件,因此您可能需要将其切换为asp:LinkButton
。
<asp:LinkButton ID="LinkButton1" runat="server"
OnClientClick="ShowModalPopup()" />
完美的解决方法,为我工作