C#无刷新的更新界面内容

现在的无刷新更新方式有很多种,目前普通的可能会采用Ajax的方式.
刚好前几天我也用了一下.采用了两种方式.一各是ajax的无刷新方式.还有一种是采用XML的无刷新方式.
第一种.ajax的方式
使用的是ajaxpro 2.0在网上下一个DLL

文件,加入到项目中.
<system.web>中加入下面这句话.
    <httpHandlers>
      <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
    </httpHandlers>

使用时.在Page_Load()中加入这句话.
AjaxPro.Utility.RegisterTypeForAjax(typeof(ChatMain)); //我的界面名称是ChatMain
在这个界面中使用的方法在方面前台加上[AjaxPro.AjaxMethod]
例如:
[AjaxPro.AjaxMethod]
public ArrayList GetAllUserList()
{
 //这里写代码
}

这样在前台的aspx界面中这样使用
function GetAllUser(themeid)
  {

 var obj = document.getElementById("userlist");  //这里的userlist是一个DIV的ID
 obj.innerHTML = '';
 var array = ChatMain.GetAllUserList(themeid);       //这里调用的就是ajax的方法.ChatMain是界面的名称.    
        for(var i=0;i<array.value.length;i++)
        {              
         obj.innerHTML += "<br>&nbsp;[<a href='#'>"+array.value[i]+"</a>]";
        }                  
  }

在前台的aspx界面中就需要处理传过来的arraylist.我上面只是一个循环使用了一下.

第二种方式,是使用另一个界面方式返回一个XML文件的方式.

两个界面.一个是ChatMain.aspx还有一个是ChatMainGetAllUser.aspx
ChatMain.aspx是主要的界面.用来显示信息.ChatMainGetAllUser.aspx界面则只有<%@ Page ......%>这个属性别的都可删掉.
在ChatMain.aspx界面中的javascript中写入如下两句:
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("MSXML2.DOMDocument");

function GetAllUser()
{
 oHttpReq.open("POST","ChatMainGetAllUser.aspx?Tname="+themeid+"&uid="+username+"&message="+message);
        oHttpReq.send();  
 result = oHttpReq.responseText; //这里返回的即是ChatMainGetAllUser.aspx返回的XML数据
 oDoc.loadXML(result);    //得到一个XML的document 

 items = oDoc.selectNodes("//Test/Table");  //这里就是进行的XML操作了
 for(var item = items.nextNode();item;item = items.nextNode())
        {
         var pname = item.text;
                var newOp = document.createElement("OPTION");
                newOp.value = pname;
                newOp.text = pname;
                drp2.options.add(newOp);
         }     
}

而在ChatMainGetAllUser.aspx界面中则只会有一个方法.
Page_Load()方法,并且必须返回一个XML的数据
例如我的是这样写的:
 if (Request.QueryString["Tname"] != null)
        {
            string tname = Request.QueryString["Tname"].ToString();
            SqlDataAdapter da = new SqlDataAdapter(string.Format("select pname from TestDropdownList where Pid=

{0}",tname),DBConnection.GetConnection());
            DataSet ds = new DataSet("Test");
            da.Fill(ds);

            XmlTextWriter write = new XmlTextWriter(Response.OutputStream,Response.ContentEncoding);
            write.Formatting = Formatting.Indented;
            write.Indentation = 4;
            write.IndentChar = ' ';
            ds.WriteXml(write);
            write.Flush();
            Response.End();
            write.Close();
        }
这样就完成了一次交互,而且界面没有刷新.处理的时候,只要在ChatMain.aspx进行XML的操作就可以了.

这些只是个人的使用介绍.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值