2016-09-21 25 views
0

ASP.NET Webフォームで検索を実行し、機能を選択するために表示したいブートストラップモーダルがあります。問題は、ユーザーが「検索」ボタンをクリックしたときにモーダルが閉じられることです。私は下のGridViewで検索結果を表示するためにモーダルを開いたままにし、ユーザがGridViewアイテムを選択すると閉じます。ASP.NETのポストバックでブートストラップモーダルクローズを防止する

私は他のスレッドで言及された他のソリューションを試しましたが、何も動作していないようです。私はMasterページでWebFormを使用していますが、問題が発生する可能性があるかどうかはわかりません。

これは私のモーダルコードです:

<div class="modal fade" id="modSearchByAccount" role="dialog"> 
<div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">Search by Account</h4> 
     </div> 
     <div class="modal-body"> 
      <div class="row"> 
       <div class="col-md-8"> 
        <asp:TextBox ID="txtSearchText" runat="server" CssClass="form-control" placeholder="Account name"></asp:TextBox> 
       </div> 
       <div class="col-md-4"> 
        <asp:Button ID="btnSearchAccount" runat="server" OnClick="btnSearchAccount_Click" Text="Buscar" CssClass="btn btn-default" /> 
       </div>  
      </div> 
      <div class="row"> 
       <div class="col-md-12"> 
        <asp:Panel ID="pnlSearchResults" runat="server" ScrollBars="Vertical" Height="200px" Width="100%"> 
         <asp:GridView ID="gvSearchResults" runat="server" AutoGenerateColumns="False" DataKeyNames="ACCOUNT_ID" OnSelectedIndexChanged="gvSearchResults_SelectedIndexChanged" CssClass="table table-striped table-hover"> 
          <Columns> 
           <asp:BoundField DataField="ACCOUNT_ID" HeaderText="ID" /> 
           <asp:BoundField DataField="ACCOUNT_NAME" HeaderText="Name" /> 
           <asp:CommandField ShowSelectButton ="true" /> 
          </Columns> 
         </asp:GridView> 
        </asp:Panel> 
       </div> 
      </div> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     </div> 
    </div> 
</div> 

任意のアイデア?ここでUpdatePanelを使用することはできますか?

ありがとうございます!

+1

ボタンがモーダルは、クローズされていないその後、ポストバックが発生している場合*ページがリロード中です。ページが読み込まれたら、モーダルを再度開いてトリガーする必要があります。あるいは、ページを最初にリロードする代わりに、AJAXを介して操作を実行することもできます。 – David

+0

私はモーダルを再開しようとしましたが、うまく見えません。それは隠され、2番目の泡が表示されます。モーダル内とボタンの周りにUpdatePanelを使用できますか? –

+0

ポストの代わりにポストを行うためにajaxを使用できますか?そうすれば、ポストのデフォルトアクションを防ぐことができます(リロードはありません)。返される内容に基づいてフォームを更新するだけです。次に、データを投稿するボタンに却下プロパティがないことを確認します。 – Kolichikov

答えて

0

おそらく遅すぎるかもしれませんが、はいできます。キーは、外側のUpdatePanelと内側のUpdatePanelを持つことです。外側のパネルは、条件付きのUpdateModeとChildrenAsTriggers = trueに設定する必要があります。私の場合は

私はユーザーコントロールに内側本体を移動しますが、次のようにあなたのコード例は動作するはずです:

<asp:UpdatePanel runat="server" ID="updatePanelTop" UpdateMode="Conditional" ChildrenAsTriggers="True"> 
<ContentTemplate> 
    <div class="modal fade" id="modSearchByAccount" role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal">&times;</button> 
       <h4 class="modal-title">Search by Account</h4> 
      </div> 
      <div class="modal-body"> 
       <asp:UpdatePanel runat="server"> 
       <ContentTemplate> 
        <div class="row"> 
         <div class="col-md-8"> 
          <asp:TextBox ID="txtSearchText" runat="server" CssClass="form-control" placeholder="Account name"></asp:TextBox> 
         </div> 
         <div class="col-md-4"> 
          <asp:Button ID="btnSearchAccount" runat="server" OnClick="btnSearchAccount_Click" Text="Buscar" CssClass="btn btn-default" /> 
         </div>  
        </div> 
        <div class="row"> 
         <div class="col-md-12"> 
          <asp:Panel ID="pnlSearchResults" runat="server" ScrollBars="Vertical" Height="200px" Width="100%"> 
           <asp:GridView ID="gvSearchResults" runat="server" AutoGenerateColumns="False" DataKeyNames="ACCOUNT_ID" OnSelectedIndexChanged="gvSearchResults_SelectedIndexChanged" CssClass="table table-striped table-hover"> 
            <Columns> 
             <asp:BoundField DataField="ACCOUNT_ID" HeaderText="ID" /> 
             <asp:BoundField DataField="ACCOUNT_NAME" HeaderText="Name" /> 
             <asp:CommandField ShowSelectButton ="true" /> 
            </Columns> 
           </asp:GridView> 
          </asp:Panel> 
         </div> 
        </div> 
       </ContentTemplate> 
       </asp:UpdatePanel> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</ContentTemplate> 
</asp:UpdatePanel>  
関連する問題