asp.net(vs2005)使用updatepanel控件详解

  最近做一个网站,里面涉及到级联的问题(如省-市,品牌-型号等), 我用的是DropDownList来实现的,设置父级的AutoPostBack属性为真.然后在它的SelectedIndexChanged()事件里写相应的代码,这样就能实现级联关系(当然这里要注意IsPostBack的问题).  做好之后用时发现一个非常不爽的问题,那就是每次都会刷新,这样的体验自已都感觉非常不爽(更不敢交给客户).所以就上网找一些关于无刷新级联的东东,东东真不少,有javascript ,ajrx, updatepanel等,关于这些区别可能上网查。

     由于是第一次用这些东东,而且项目周期所限,就后选择最简单的updatepanel.虽然很简单,但在这个过程中也有一些问题,特别对于像我这样完全没有接触过ajax的菜鸟了(刚开始连updatepanel在哪,怎么添加都不知道?)。呵呵费话已说了很多了,接下来我来说说我的整个过程.

 

      1、安装Ajax组件(这样最简单方便)。在百度输入(ASP.NET AJAX 1.0 下载)即可找到需要下载的软件。

         安装后将X:/Program Files/Microsoft ASP.NET/ASP.NET 2.0 Ajax Extensions/v1.0.61025
目录下的System.Web.Extensions.Design.dll文件加到项目的bin目录下,文件复制到网站bin目录
         安装了asp.net Ajax后会有三个dll文件

                                     System.Web.Extensions.Design.dll

                                     AjaxExtensionsToolbox.dll

                                     System.Web.Extensions.dll

         一般应该将这三个文件都添加到项目的bin目录下,要保险的话,全部复制进去吧

 

       2、添加引用。在解决方案视图窗口中,右击网站名称--添加引用--浏览。找到工程的bin目录选择System.Web.Extensions.Design.dll和System.Web.Extensions.dll.然后确定,完成引用的添加.

 

       3、把updatepanel添加到工具栏中. 右击工具栏空白处--选择项--浏览:找到工程bin目录并选择System.Web.Extensions.dll. 然后在上面的选择刚添加的工具(选择时要分清版本,不在选择3.5(假如你安装了。net3.5)),完成后在工具栏的标准中的最下方添加了两个控件ScriptManager和UpdatePanel

 

       到这一步就可以和使用控件没有什么区别了,但是我的项目中的无刷新级联没有效果--即安装好updatepanel后会出现不好用,导致随时都是整个页面的刷新. 

 

       上网找对了一些资料懂了一点点,知道由于我建立的不是Ajax的项目,所以无效,但可以改配置文件。如果没有改配置文件可以出错像("System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。)这样的错误.

     

  接下来让我们来看一下webconfig的修改吧!

      

1、之间加入 :  (如果没有这一句就加入)
      

 

 2、在文件的配置节中加一段代码

       

我这里讲述的是updatepanel的使用及配置,对于它的原理网上很大大家可以上网,(其实我也没懂,因为我是个菜鸟). 对于updatepanel的属性等的设置有不明白的也可以上网查,但是要设置和要注意的地方我一般有红色标明了!

 









         

      

     到这里就可以正确的使用updatepanel控件了,且出现了我要的效果,呵呵,(对于我来说)不容易啊!小小乐一下!

接下我发个小例子让大家参考一下(说好听的,主要还是防止以后忘了,可以来看一眼)

                 (注意:   aspx页面加入 注册:
                       <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"Namespace="System.Web.UI" TagPrefix="asp" %>
)--其实拖完控件它自动注册了!

 

 

//在updatepanel使用之前一定要先加这个控件,且它的EnablePartialReadering = True         


 

  
        
        
      

             
                //省份下拉列表
               
           
 
            //把要刷新的控件包含在updatepanel里面,尽量的少,这些就可以减少网络的传输        UpdateMode 属性设: Conditional
           
                
                    
                    

              

              
                //触发器
               
                    
                

             
           
 
后台代码
    
     //省份的相应事件
     protected void ddlProvice_SelectedIndexChanged(object sender, EventArgs e)
    {
        int pid = int.Parse(((DropDownList)sender).SelectedValue);
        if(pid==0)
        {
            ddlCity.Items.Insert(0, "<--城市-->");
            ddlCity.Items[0].Value = "0";
        }
        else
        {
            BindCity(pid);    //绑定函数
        }
    }
菜鸟们多交流,高手们指教!

你可能感兴趣的:(asp.net,assembly,ajax,asp,server,triggers)