asp.net - 如何使用 GridView 中的控件在 ModalPopupExtender 中设置 TargetControlID

标签 asp.net gridview ajaxcontroltoolkit modalpopupextender

如何设置 TragetContriIDHyperLinkGridView 里面?

我试过这个:

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

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

最佳答案

设置 TargetControlIDModalPopupExtender基本上是在点击控件时触发那个 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()" />

关于asp.net - 如何使用 GridView 中的控件在 ModalPopupExtender 中设置 TargetControlID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5922143/

相关文章:

javascript - 使用 JSON 和 Serializer 返回多个列表

c# - 如何在 Gridview 分页器中将 NextPageText/NextPageUrl 从 "..."更改为 "Next"?

Android 适配器未更新 ui

ASP.Net Modal Popup 位置

AjaxControlToolkit 需要 ASP.NET Ajax 4.0 脚本。确保引用了正确版本的脚本

asp.net - 是否可以为适用于任何文化的日期格式 MMM-yyyy 设置 MaskedEditExtender 的掩码?

asp.net - Visual Studio 2005 上的 Linq

mysql - 如何在 SQL Server 中创建触发器,使用两个表来查找 ASP.NET 中的库存数量

c# - 在特定位置插入 XML 节点

javascript - 将 onclick 事件添加到大型 html 表中的输入元素会导致页面渲染缓慢。如何提高性能?