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

时间:2011-02-23 14:56:52

标签: 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>

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

帮我解决问题。

2 个答案:

答案 0 :(得分:5)

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

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

  1. 为ModalPopup添加虚拟目标

    &LT; asp:Button runat =“server”ID =“HiddenTargetControlForModalPopup”style =“display:none”/&gt;

  2. 设置TargetControlID =“HiddenTargetControlForModalPopup”

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

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

    希望这会有所帮助。

答案 1 :(得分:0)

您可以根据需要使用异步PostBack Trigger或PostBackTrigger。我想要这个网格视图在更新面板中你需要使用异步PostBack触发器。 如果您希望在按钮单击时重新加载该页面,则需要回发触发器并确保控制按钮位于该更新面板内。 这是一个例子

<asp:UpdatePanel ID="UPDTree" runat="server">
            <ContentTemplate>

                <asp:LinkButton ID="lnkfaketree" runat="server"></asp:LinkButton>
                <asp:ModalPopupExtender ID="mpeTree" runat="server" BackgroundCssClass="modalBackground recharge" CancelControlID="btntreeclose" PopupControlID="paneltree" TargetControlID="lnkfaketree"></asp:ModalPopupExtender>
        <asp:Panel ID="paneltree" runat="server" Style="display: none">
            <div class="btn-group pull-right">
            </div>
            <div class="box box-primary">
                <div class="box-header with-border" style="padding: 3px; background-color: #14181a; font-weight: bolder">
                    <h3 class="box-title" style="color: white">Tree View</h3>
                    <div class="btn-group pull-right">
                        <asp:LinkButton ID="btntreeclose" runat="server" CssClass="fa fa-close" OnClick="btntreeclose_Click"></asp:LinkButton>
                    </div>
                </div>

                <div class="form-horizontal">
                    <div class="box-body">
                        <div id="chart_div" style="width: 1000px; height: 500px; overflow: auto">
                        </div>
                        <asp:Button id="BtnNext" runat="server" OnClick="selectHandler()" />
<asp:Button id="btn_Submit" runat="server" OnClick="selectHandler2()" />
                    </div>
                </div>
            </div>
        </asp:Panel>
            </ContentTemplate><Triggers>
                <asp:AsyncPostBackTrigger ControlID="BtnNext" EventName="Click" />
                <asp:PostBackTrigger ControlID="btn_Submit" />
            </Triggers>
        </asp:UpdatePanel>