2016-01-03 2 views
1

я бы лучше объяснить мою проблему, и я хотел бы сделать много правок, чтобы уточнить:Обновление UpdatePanel после события нажатия кнопки

Markup

<asp:ScriptManager runat="server" /> 

<div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true"> 
    <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" > 

       </h4> 
      </div> 
      <div class="modal-body"> 

      </div> 
      <div class="modal-footer"> 
       <asp:Button runat="server" Text="Chiudi" class="btn btn-danger" data-dismiss="modal" /> 
       <asp:Button runat="server" ID="btn_Save" Text="Salva" class="btn btn-success" ValidationGroup="valGroup2" /> 
      </div> 
     </div> 
    </div> 
</div> 

<asp:Button ID="Button1" runat="server" Text="Button" data-target="#myModal" class="btn btn-primary" data-toggle="modal"/> 



<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" > 
    <ContentTemplate> 
     <asp:GridView ID="grd_elenco" runat="server" CssClass="table table-bordered table-hover" data-toggle="modal"> 

     </asp:GridView> 
     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    </ContentTemplate> 
    <Triggers> 

    </Triggers> 
</asp:UpdatePanel> 

VB.NET:

Private Sub btn_Save_Click(sender As Object, e As EventArgs) Handles btn_Save.Click 
    Label1.Text = "test" 
    UpdateSomeDataInGrid() 

    UpdatePanel1.Update() 
End Sub 

Я бы обновил только UpdatePanel с помощью btn_Save с частичной обратной передачей вместо полной обратной передачи. Мне нужно обновить панель послеUpdateSomeDataInGrid(), кто-то знает, как это сделать?

Я попытался добавить UpdatePanel1.Update(), но вся страница является обратной передачей.

+0

Редактировать свой вопрос с полной разметкой. Нам нужно увидеть, где Button1. –

+0

@RegEdit done ... –

+0

Идя по разметке, которую вы опубликовали, Button1 вызывает полный почтовый опрос, поэтому обновит UpdatePanel1 в любом случае даже без кода в обработчике событий Button1. Кроме того, поскольку UpdatePanel1 не имеет содержимого, так как вы определяете, что он не обновляется? См. [Наше руководство по созданию минимального, полного и проверяемого примера] (http://stackoverflow.com/help/mcve). –

ответ

0

Причина в том, что btnSave не находится внутри UpdatePanel. Как бы то ни было, это означает, что он всегда будет вызывать полную обратную передачу страницы.

Чтобы получить частичную обратную передачу страницы с помощью UpdatePanel, поместите элемент управления обратной связью внутри UpdatePanel.

Таким образом, вы должны двигаться btnSave внутри UpdatePanel:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"> 
    <ContentTemplate> 
     <asp:Button runat="server" ID="btn_Save" Text="Salva" class="btn btn-success" ValidationGroup="valGroup2" /> 
     . 
     . 
     . 

В качестве альтернативы, если это устраивает ваш дизайн лучше, переместить весь DIV, который содержит btnSave внутри UpdatePanel:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"> 
    <ContentTemplate> 
     <div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true"> 
     . 
     . 
     . 

Или место btnSave в собственной UpdatePanel. Это позволит избежать всплытия полной страницы, в то время как ваш обработчик все еще может обновлять UpdatePanel1.

+0

Если я помещаю кнопку внутри панели обновления, она не находится в модальном поле. Итак, как я могу использовать его в модальном поле, если он уже находится в панели обновления? –

+0

@PietroZ. Я обновил свой ответ двумя предложениями об этом. –

+0

С небольшой настройкой для моего конкретного случая это сработало. благодаря –

Смежные вопросы