UpdatePanel с Button / LinkButton не работает - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь решить проблему с помощью кнопки / кнопки-ссылки (оба не работают).Проблема заключается в следующем:

У меня есть меню навигации, где пользователь может выбрать «вкладку» (представление Multiview), куда он хочет быть перенаправлен.В этом меню у меня есть несколько кнопок / кнопок ссылок, которые должны обновить панель обновления.Но он этого не делает - он всегда обновляет всю страницу.

Некоторые из моих ASCX-кодов:

    <div class="row">
                <label style="margin-left: 15px">Menu</label><br />
                <div class="col-sm-4 col-md-3 sidebar">
                    <div class="mini-submenu">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </div>
                    <div class="list-group">
                        <span class="list-group-item active">Woundmanagement

                            <span class="pull-right" id="slide-submenu">
                                <i class="fa fa-times"></i>
                            </span>
                        </span>
                          <asp:Button ID="Button_1" runat="server" Text="Wundbeschreibung" CssClass="list-group-item" OnClick="nav_btn_1_Click" />
...
more items in the dropdownmenu

</div>...

Событие, которое должно быть запущенопри нажатии на кнопку:

protected void nav_btn_1_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 1;

        }

Я искал 2 часа сейчас и пробовал все возможные решения - то, что я пробовал до сих пор:

  • Поместить кнопку и меню внутри и снаружи панели обновлений - это не меняет проблему

  • добавлен PostbackTrigger

      <asp:PostBackTrigger ControlID="Button_1"/>
    

Таким образом, моя кнопка работает, но страница все равно перезагружается

  • , затем я добавил asyncPostbackTrigger

      <asp:AsyncPostBackTrigger ControlID="Button_1" EventName="Click"/>
    

, еслиЯ нажимаю кнопку сейчас, ничего не происходит.

  • Я пытался добавить условный UpdateMode к панели обновления

      <asp:ScriptManager ID="ScriptManager1" runat ="server"> 
      </asp:ScriptManager>
      <asp:UpdatePanel ID="UP_Woundmanagement" runat="server" 
      UpdateMode="Conditional">
    
  • Я переместил <Triggers> перед панелью обновления и за панелью обновления

  • я добавил ClientIDMode="AutoID" к директиве страницы

  • пробовал то же самоечто-то с LinkButton

Я действительно не знаю, что еще могу сделать, чтобы это сработало, было бы здорово, если бы у кого-то из вас, ребята, появилась идея!:)

1 Ответ

0 голосов
/ 21 ноября 2018

Я не понимаю, почему вы не поделились своим кодом aspx панели обновлений.Тег триггеров внутри панели обновления не до или после него.

<script runat="server">
   protected void Button1_Click(object sender, EventArgs e)
   {
     Label1.Text = "Refreshed at " + DateTime.Now.ToString();
   }
</script>

<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text="Panel created."></asp:Label>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Button1" />
        </Triggers>
    </asp:UpdatePanel>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 
</div> 

Если объекты триггера будут находиться внутри UpdatePanel, вы должны установить ChildrenAsTrigger как true.И если ваша панель обновления в ContentPlaceHolder, то эта статья будет вам полезна.https://msdn.microsoft.com/tr-tr/library/bb398864(v=vs.100).aspx

...