具有模态弹出扩展器的按钮的服务器端事件

Chr*_*ris 2 asp.net modalpopupextender

我有一个按钮,我正在调用一个模式弹出扩展器,显示一个面板.以下是代码:

<asp:Button ID="btnOne" runat="server" Text="View " 
                                onclick=" btnOne_Click" />


<asp:Panel ID="test" CssClass="ModalWindow"  Width="100%"  ScrollBars="Both" runat="server">
          <table id="tblgv" width="100%">
            <tr>
                <td>
                    <asp:GridView ID="gvTwo" runat="server">
                    </asp:GridView>
                </td>
            </tr>
             <tr>
                <td>
                <asp:Button ID="btnPopUpCancel" runat="server" Text="Close" />
                </td>
            </tr>
          </table>
        </asp:Panel>

<asp:ModalPopupExtender ID="ModalPopupExtender1"  OkControlID="btnPopUpCancel" 
  TargetControlID=" btnOne " PopupControlID="test" runat="server">
</asp:ModalPopupExtender>
Run Code Online (Sandbox Code Playgroud)

在面板中,我有一个gridview.我希望当我点击按钮时会加载gridview.但它没有发生,当我点击按钮它不是服务器端.

帮我解决一下.

Dav*_*b60 5

您的问题是ModalPopup正在显示客户端.

如果您要做什么(绑定gridview),您需要触发回发到服务器.

  1. 为ModalPopup添加一个虚拟目标

    <asp:Button runat ="server"ID ="HiddenTargetControlForModalPopup"style ="display:none"/>

  2. 设置TargetControlID ="HiddenTargetControlForModalPopup"

  3. 在btnOne_Click事件中调用ModalPopupExtender1.show().

btnOne现在将触发服务器端事件.您还应该将Gridview放在更新面板中,并将btnOne设置为asyncynctback触发器.

希望这会有所帮助.