当我将项目从一个列表框转移到另一个列表框时,如何防止页面被回发

时间:2011-08-24 11:46:33

标签: asp.net ajax listbox postback

我的应用程序中有两个列表框按钮单击我将项目从一个列表框推送到其他,代码工作正常但它会导致回发,而我将项目从一个列表框移动到其他整个页面正在加载再次,我怎么能阻止这一点。

这将是我的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 个答案:

答案 0 :(得分:2)

如果您的Visual Studio版本低于2008,请先从以下站点下载ajax并安装它:

http://ajaxcontroltoolkit.codeplex.com/

添加对System.Web.Extensions dll的引用,然后在打开&lt; form&gt;后立即添加以下行:标记:

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

将以下代码中的Your Code替换为您在上面编写的完整代码:

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

就是这样,这将停止回发你的页面。

答案 1 :(得分:2)

花时间研究如何使用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/