Событие на стороне сервера для кнопки, имеющей модальный всплывающий экстендер

У меня есть кнопка, на которой я вызываю модальный всплывающий экстендер, который показывает панель. Ниже приведен код:

<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 загружался. Но этого не происходит, когда я нажимаю на кнопку, это не происходит на стороне сервера.

помогите мне, как решить это.

2 ответа

Ваша проблема в том, что ModalPopup показывает сторону клиента.

Если вы что-то делаете (связываете сетку), вам нужно инициировать обратную передачу на сервер.

  1. добавить фиктивную цель для ModalPopup

  2. set TargetControlID="HiddenTargetControlForModalPopup"

  3. вызовите ModalPopupExtender1.show() внутри события btnOne_Click.

btnOne теперь будет запускать серверное событие. Вы также должны поместить Gridview в панель обновлений и установить btnOne в качестве триггера asyncpostback.

Надеюсь, это поможет.

Вы можете использовать асинхронный триггер PostBack или PostBack Trigger в соответствии с вашими потребностями. Я хотел бы, чтобы этот вид сетки В панели обновлений вам нужно использовать асинхронный триггер 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>
Другие вопросы по тегам