所以我使用Ajax控件工具包中的ModalPopupExtender控件。我的理解是,当我想将targetControlID设置为Gridview中的按钮时,我需要将ModalPopupExtender放在保存该按钮的模板中。在我的情况下:如何在ModalPopupExtender在gridview中时使用Ajax ModalPopUpExtender的.show()?
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbtnDeleteWidget" runat="server" Text="Delete" CommandName="DeleteWidget" CommandArgument="<%# Container.DataItemIndex %>"></asp:LinkButton>
</ItemTemplate>
<FooterStyle HorizontalAlign="Right" />
<FooterTemplate>
<asp:Button ID="btnAddNewWidget" runat="server" CssClass="buttonStyle" Text="Add New Widget" onclick="btnAddNewWidget_Click"/>
<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
BackgroundCssClass="modalBackground"
DropShadow="true"
OkControlID="btnSaveWidget"
CancelControlID="aCloseX"
PopupControlID="Panel1"
TargetControlID="btnAddNewWidget" />
</FooterTemplate>
</asp:TemplateField>
现在,这是行之有效的,当按钮被按下时,模式弹出窗口出现,一切都很好。但是,ModalPopUpExtender具有在回发中关闭模式的讨厌习惯。我弹出包含一些DropDownLists将不得不做回发(它需要执行一些相关的代码)。只要发生这种情况,模式就会关闭。
解决此问题的方法是使用show()函数。例如,只要下拉列表执行回发,该函数就以ModalPopupExtender1.Show();结束。
问题:
ModalPopupExtender1并不在我目前情况下存在的,因为我的模板字段中定义它,这样它会工作。我该如何解决?我想引用我的ModalPopupExtender1并使用.show()函数来处理回发问题。