【问题标题】:Solution for Modal Popup Extender in GridViewGridView中Modal Popup Extender的解决方案
【发布时间】:2012-06-02 14:21:31
【问题描述】:

我试图在用户单击 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> 

【问题讨论】:

    标签: asp.net modalpopupextender


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      这样做:

      <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。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-09
        • 1970-01-01
        • 2013-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-21
        相关资源
        最近更新 更多