2011-10-24 111 views
1

首先,我将描述Web窗体布局:ASP.Net AJAX模式弹出窗口

形式包含GridView1与“详细信息”按钮,打开第二GridView2,其目的当然是为了展示从父级GridView1中选择的项目的详细信息。所有控件都在服务器端代码隐藏中动态呈现。

挑战:

我需要打造了展示,当用户点击,在孩子GridView2是作为一个TemplateField Image控件图标的模式弹出窗口。这样用户就可以在子GridView2中添加注释。

我的方法:

我试图让AJAXToolKit的过程中预渲染阶段连线以模板列图标模式弹出扩展(ID =“MPE”)。由于的TargetControlID不能为空或空的,我做的是创建一个虚拟按钮控制和模态弹出扩展的的TargetControlID属性设置为所谓的虚拟按钮的ID,然后将模板列添加到GridView2后,我的的TargetControlID属性设置为图标的ID,即“icon_addComment”。

问题:

当我尝试到的TargetControlID属性设置为图标的ID,该代码抛出错误“的‘MPE’的的TargetControlID无效ID为‘icon_addComment’的控制。找不到。“。我很为难,我怎么能得到这个正常工作,似乎没有办法左右的目标控制必须在模式弹出扩展之前创建的条件得到。我想要的只是将子GridView2图标的ID作为模式弹出式扩展程序的TargetControlID

回答

1

将虚拟隐藏按钮用作模式弹出扩展程序的目标控件ID,然后使用java-script来显示/隐藏实际图标点击的模式弹出窗口。例如,

<asp:ModalPopupExtender runat="server" ID="MyPopup" ... /> 

<script type="text/javascript" /> 

function showPopup() { 
    $find('<%= MyPopup.ClientID ').show(); 
} 

function hidePopup() { 
    $find('<%= MyPopup.ClientID ').hide(); 
} 

</script> 

就我个人而言,我不是ajax控制工具包的粉丝。对于这个要求,我会用jquery UI Dialog