Как предотвратить постбэкинг страницы при переносе элемента из одного списка в другой - PullRequest
1 голос
/ 24 августа 2011

У меня есть два списка в моем приложении при нажатии кнопки. Я перемещаю элемент из одного списка в другой, код работает нормально, но вызывает обратную передачу, в то время как я перемещаю элемент из одного списка в другую целую страницу загружаетсяОпять же, как я могу предотвратить это.

Это будет код на моей странице aspx

 <div class="bx1">
        <telerik:RadListBox ID="RadListBox1" runat="server" DataTextField="Name" DataValueField="Id"
             Width="250px">
        </telerik:RadListBox>
        </div>
       <div style="height:7px"></div>
        <div class="bx5">
         <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="images/dwnArrow.png" OnClick="MoveDownClick" />
         <asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="images/uparrow.png" OnClick="MoveUpClick" />
       </div>
         <div style="height:7px"></div>

       <div class="bx1">
        <telerik:RadListBox ID="RadListBox2" runat="server"   DataTextField="Name"
            DataValueField="Id" Width="250px" >
        </telerik:RadListBox>
        </div>

Это мой код для списка

 protected void MoveDownClick(object sender, EventArgs e)
            {
                if (RadListBox1.SelectedIndex < 0)
                {
                }
                else
                {
                    RadListBox2.Items.Add(RadListBox1.SelectedItem);
                    RadListBox1.Items.Remove(RadListBox1.SelectedItem);
                    RadListBox2.SelectedItem.Selected = false;
                }
            }
            protected void MoveUpClick(object sender, EventArgs e)
            {
                if (RadListBox2.SelectedIndex < 0)
                {

                }
                else
                {

                    RadListBox1.Items.Add(RadListBox2.SelectedItem);
                    RadListBox2.Items.Remove(RadListBox2.SelectedItem);
                    RadListBox1.SelectedItem.Selected = false;

                }

            }

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Потратьте время, чтобы изучить использование jQuery вместе с Microsoft Ajax с панелями обновления или переходить на jQuery исключительно там, где это возможно. Вот две ссылки, которые отлично читаются по теме:

Microsoft Ajax? http://encosia.com/why-aspnet-ajax-updatepanels-are-dangerous/

JQuery Ajax: http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

2 голосов
/ 24 августа 2011

Если ваша версия Visual Studio меньше 2008, то сначала загрузите ajax со следующего сайта и установите его:

http://ajaxcontroltoolkit.codeplex.com/

Добавьте ссылку на dll System.Web.Extensions, а затем добавьте следующую строку сразу после открывающего тега :

<asp:ScriptManager runat="server" ID="Script1"></asp:ScriptManager>

Замените Your Code в следующем фрагменте кода на весь код, который вы написали выше:

<asp:UpdatePanel runat="Server" ID="u1">
<ContentTemplate>
Your Code
</ContentTemplate>
</asp:UpdatePanel>

Вот и все, это прекратит публикацию вашей страницы.

...