0

当用户单击 GridView 中的 LinkBut​​ton 时,我试图显示模态弹出窗口。我放置了一个断点进行测试,但是当我单击 Gridview 中的链接按钮时,它似乎没有通过 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> 
4

2 回答 2

1

“lnkItemName”是“extPerson”的 TargetControlID,因此根本不会调用“lnkItemName_Click”——而是由 ModalPopupExtender 处理,并且“pnlItem”会自动显示。如果您愿意,您可以删除 TargetControlID 属性,然后“lnkItemName_Click”在服务器上被调用,因此您可以手动显示“pnlItem” - 但是,您首先必须以某种方式找到正确的“extPerson”控件(每个行有一个),将其转换为 ModalPopupExtender,然后在其上调用 Show()。

长话短说,只需简单地删除 OnClick 事件,它的用处 - 如果 Modal Popup 没有显示它现在的方式,那么还有其他问题。

于 2012-06-02T15:36:42.887 回答
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 。

于 2012-06-02T20:56:38.850 回答