当用户在GridView中单击LinkButton时,我正在尝试显示Modal Popup。 我为测试设置了一个断点但是当我点击Gridview中的Linkbutton时它似乎没有通过ModalPopupExtender.Show()事件。
protected void lnkItemName_Click(object sender, EventArgs e)
{<---Break Point
ModalPopupExtender.Show();
}
<asp:GridView ID="grvItem" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSourceItem" onrowdatabound="grvItem_RowDataBound"
DataKeyNames="ID">
<Columns>
<asp:TemplateField >
<ItemStyle Font-Size="10" />
<HeaderTemplate>
ITEM
</HeaderTemplate>
<ItemStyle Wrap="True" />
<ItemTemplate>
<asp:LinkButton ID="lnkItemName" runat="server" Text='<%# Eval("NAME") %>' CssClass="h7" Width="100" OnClick="lnkItemName_Click"></asp:LinkButton>
<asp:Panel ID="pnlItem" runat="server" Style="display: none" Width="400px" Height="400px" BackColor="White">
<div style="float: right;">
<asp:LinkButton ID="lnkClose" runat="server">Close</asp:LinkButton>
</div>
<asp:TextBox ID="txt" runat="server">asdf</asp:TextBox>
</asp:Panel>
<asp:ModalPopupExtender ID="extPerson" runat="server" TargetControlID="lnkItemName"
PopupControlID="pnlItem" DropShadow="true" CancelControlID="lnkClose" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:1)
“lnkItemName”是“extPerson”的TargetControlID,因此“lnkItemName_Click”根本不被调用 - 而是由ModalPopupExtender处理,“pnlItem”自动显示。如果你愿意,你可以删除TargetControlID属性,然后在服务器上调用“lnkItemName_Click”将,这样你就可以手动显示“pnlItem” - 但是,你首先要以某种方式找到它右键“extPerson”控件(每行有一个),将其转换为ModalPopupExtender,然后在其上调用Show()。
长话短说,只需简单地删除OnClick事件,它的用途 - 如果Modal Popup没有显示它现在的方式,那么其他错误。
答案 1 :(得分:0)
这样做:
<ajaxToolkit:ModalPopupExtender runat="server" ID="mdlImageDetails" TargetControlID="mdConfirmbtn"
PopupControlID="modelDiv" BackgroundCssClass="modalBackground" >
</ajaxToolkit:ModalPopupExtender>
<asp:Button runat="server" ID="mdConfirmbtn" Style="display: none;" />
然后在代码中,您可以通过调用.show()
和.hide()
方法手动控制ModalPopUp。