Ajax实现无刷新的获取数据并绑定到GridView,以及无刷新更新数据

首先是获得数据并绑定好GridView
客户端javascript代码:

 1 None.gif          function  GetPersonnelKPIStep()
 2 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {            
 3InBlock.gif                      
 4InBlock.gif            var sId=GetParam("c_id");
 5InBlock.gif            
 6InBlock.gif            document.getElementById("hId").value=sId;
 7InBlock.gif            
 8InBlock.gif            var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); 
 9InBlock.gif            xmlhttp.Open("post","FmPersonnelKPIData.aspx?MethodName=GetPersonnelKPIStep&c_id="+sId+"&c_sort=",false);
10InBlock.gif            xmlhttp.Send();
11InBlock.gif            var sGridContent=xmlhttp.responseText;    
12InBlock.gif             
13InBlock.gif            var iStart=sGridContent.indexOf("<table");
14InBlock.gif            var iEnd=sGridContent.indexOf("</table>");            
15InBlock.gif            document.getElementById("divStep").innerHTML= sGridContent.substring(iStart,iEnd+8);            
16ExpandedBlockEnd.gif        }
 
因为GirdView最后会翻译成Table在浏览器上显示,所以我只要获得返回流中的Table并将其赋给div的innerHTML属性即可
服务端代码:
1 None.gif protected   void  Page_Load( object  sender, EventArgs e)
2 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
3InBlock.gif        if (!IsPostBack)
4ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
5InBlock.gif            if (sMethodName == "GetPersonnelKPIStep")
6ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
7InBlock.gif                GetPersonnelKPIStep(sId, Request.QueryString["c_sort"].ToString()); 
8ExpandedSubBlockEnd.gif            }

9ExpandedSubBlockEnd.gif     }

 1 None.gif      public   void  GetPersonnelKPIStep( string  sId,  string  sSort)
 2 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
 3InBlock.gif        CWSHr cwsHr = new CWSHr();
 4InBlock.gif        _DateNum = cwsHr.GetPersonnelKPIDateNum(sId);
 5InBlock.gif        _kpiDatetime = cwsHr.GetPersonnelKPIDateTime(sId);
 6InBlock.gif        if (_kpiDatetime == null || _kpiDatetime.Length != 2)
 7InBlock.gif            return;
 8InBlock.gif
 9InBlock.gif        _StartDate = Convert.ToDateTime(_kpiDatetime[0]);
10InBlock.gif
11InBlock.gif        DataSet ds= cwsHr.GetPersonnelKPIStep(sId,sSort);
12InBlock.gif        GV_Step.DataSource = ds.Tables[0].DefaultView;
13InBlock.gif        GV_Step.DataBind();
14ExpandedBlockEnd.gif    }
在服务端获得并绑定数据到GridView

获得xml格式的数据:
服务端代码:
None.gif      public   void  GetPersonnelKPIStepOne( string  sId,  string  sSort)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        CWSHr cwsHr 
= new CWSHr();
InBlock.gif        DataSet ds 
= cwsHr.GetPersonnelKPIStep(sId, sSort);
InBlock.gif        Response.Write(ds.GetXml());
InBlock.gif        Response.End();
ExpandedBlockEnd.gif    }
注意,Response.End()一定要加上
客户端代码:
 1 None.gif var  xmlhttp  =   new  ActiveXObject( " MSXML2.XMLHTTP " ); 
 2 None.gif            xmlhttp.Open( " post " , " FmPersonnelKPIData.aspx?MethodName=GetPersonnelKPIStepOne&c_id= " + sId + " &c_sort= " + sSort, false );
 3 None.gif            xmlhttp.Send();
 4 None.gif             var  sGridContent = xmlhttp.responseText;    
 5 None.gif                    
 6 None.gif             // alert(sGridContent);     
 7 None.gif              var  xmlDom = new  ActiveXObject( " MSXML2.DOMDocument " );
 8 None.gif            xmlDom.loadXML(xmlhttp.responseText);
 9 None.gif             var  nodes = xmlDom.selectSingleNode( " //NewDataSet/Table " ).childNodes;
10 None.gif             if  (nodes  !=   null )
11 ExpandedBlockStart.gifContractedBlock.gif             dot.gif {
12InBlock.gif                for (var i=0;i<nodes.length;i++)
13ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{                    
14InBlock.gif                    if (nodes[i].nodeName=="c_sort")
15InBlock.gif                        document.getElementById("ETBSort").value=nodes[i].text;
16InBlock.gif                    else if (nodes[i].nodeName=="c_type")
17InBlock.gif                        document.getElementById("ETBType").value=nodes[i].text;
18InBlock.gif                    else if (nodes[i].nodeName=="c_item")
19InBlock.gif                        document.getElementById("ETBKpi").value=nodes[i].text;
20InBlock.gif                    else if (nodes[i].nodeName=="c_st_dt")
21InBlock.gif                        document.getElementById("ETB_StDt").value=nodes[i].text.substring(0,nodes[i].text.indexOf("T"));
22InBlock.gif                    else if (nodes[i].nodeName=="c_en_dt")
23InBlock.gif                        document.getElementById("ETB_EnDt").value=nodes[i].text.substring(0,nodes[i].text.indexOf("T"));
24InBlock.gif                    else if (nodes[i].nodeName=="c_st_dt_fact")
25InBlock.gif                        document.getElementById("ETB_StFDt").value=nodes[i].text.substring(0,nodes[i].text.indexOf("T"));
26InBlock.gif                    else if (nodes[i].nodeName=="c_en_dt_fact")
27InBlock.gif                        document.getElementById("ETB_EnFDt").value=nodes[i].text.substring(0,nodes[i].text.indexOf("T"));
28InBlock.gif                    else if (nodes[i].nodeName=="c_result")
29InBlock.gif                        document.getElementById("ETBFact").value=nodes[i].text;
30InBlock.gif                    else if (nodes[i].nodeName=="c_propotion")
31InBlock.gif                        document.getElementById("ETBPropotion").value=nodes[i].text;
32InBlock.gif                    else if (nodes[i].nodeName=="c_score")
33InBlock.gif                        document.getElementById("ETBScore").value=nodes[i].text;
34InBlock.gif                       
35ExpandedSubBlockEnd.gif                }

36ExpandedBlockEnd.gif            }
注意以上获取时间中日期部分的处理

无刷新更新数据:
 1 None.gif                  var  xmldoc  =   new  ActiveXObject( " MSXML2.DOMDocument " );            
 2 None.gif                 var  xmlhttp  =   new  ActiveXObject( " MSXML2.XMLHTTP " );                                     
 3 None.gif                xmldoc.loadXML( "" );
 4 None.gif                
 5 None.gif                newNode1  =  xmldoc.createElement( " NewDataSet " );
 6 None.gif                xmldoc.appendChild(newNode1);
 7 None.gif                newNode2  =  xmldoc.createElement( " tb_o_k_task " );
 8 None.gif                newNode1.appendChild(newNode2);
 9 None.gif                                
10 None.gif                newNode  =  xmldoc.createElement( " c_id " );
11 None.gif                newNode.text  =  document.getElementById('hId').value;
12 None.gif                newNode2.appendChild(newNode);
13 None.gif                
14 None.gif                newNode  =  xmldoc.createElement( " c_sort " );
15 None.gif                newNode.text  =  document.getElementById('ETBSort').value;
16 None.gif                newNode2.appendChild(newNode);
17 None.gif                
18 None.gif                newNode  =  xmldoc.createElement( " c_item " );
19 None.gif                newNode.text  =  document.getElementById('ETBKpi').value;
20 None.gif                newNode2.appendChild(newNode);
21 None.gif                
22 None.gif                newNode  =  xmldoc.createElement( " c_type " );
23 None.gif                newNode.text  =  document.getElementById('ETBType').value;
24 None.gif                newNode2.appendChild(newNode);
25 None.gif
26 None.gif                newNode  =  xmldoc.createElement( " c_st_dt " );
27 None.gif                newNode.text  =  document.getElementById('ETB_StDt').value;
28 None.gif                newNode2.appendChild(newNode);
29 None.gif                
30 None.gif                newNode  =  xmldoc.createElement( " c_en_dt " );
31 None.gif                newNode.text  =  document.getElementById('ETB_EnDt').value;
32 None.gif                newNode2.appendChild(newNode);
33 None.gif                
34 None.gif                newNode  =  xmldoc.createElement( " c_st_dt_fact " );
35 None.gif                newNode.text  =  document.getElementById('ETB_StFDt').value;
36 None.gif                newNode2.appendChild(newNode);
37 None.gif                
38 None.gif                newNode  =  xmldoc.createElement( " c_en_dt_fact " );
39 None.gif                newNode.text  =  document.getElementById('ETB_EnFDt').value;
40 None.gif                newNode2.appendChild(newNode);
41 None.gif                
42 None.gif                newNode  =  xmldoc.createElement( " c_propotion " );
43 None.gif                newNode.text  =  document.getElementById('ETBPropotion').value;
44 None.gif                newNode2.appendChild(newNode);
45 None.gif                
46 None.gif                newNode  =  xmldoc.createElement( " c_result " );
47 None.gif                newNode.text  =  document.getElementById('ETBFact').value;
48 None.gif                newNode2.appendChild(newNode);
49 None.gif                
50 None.gif                newNode  =  xmldoc.createElement( " c_score " );
51 None.gif                newNode.text  =  document.getElementById('ETBScore').value;
52 None.gif                newNode2.appendChild(newNode);
53 None.gif                
54 None.gif                xmlhttp.Open( " post " " FmPersonnelKPIData.aspx?MethodName=SavePersonnelKPIStep " + " &sAct= " + escape(sAct),  false );     
55 None.gif                xmlhttp.setRequestHeader( " Content-Type " , " text/xml " );                                
56 None.gif                xmlhttp.send(xmldoc.xml); 
57 None.gif
首先将要更新的数据构造成一个xml对象,再将这个xml对象做为xmlhttp.send()的参数传给服务端
服务端代码:
 1 None.gif public   void  SavePersonnelKPIStep( string  sAct)
 2 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
 3InBlock.gif        System.IO.Stream instream = Page.Request.InputStream;
 4InBlock.gif        BinaryReader br = new BinaryReader(instream, System.Text.Encoding.UTF8);
 5InBlock.gif        byte[] byt = br.ReadBytes((int)instream.Length);
 6InBlock.gif        string sXml = System.Text.Encoding.UTF8.GetString(byt);
 7InBlock.gif
 8InBlock.gif        System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
 9InBlock.gif        xmlDoc.LoadXml(sXml);
10InBlock.gif
11InBlock.gif        string sid = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_id").InnerText;
12InBlock.gif        string ssort = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_sort").InnerText;
13InBlock.gif        string sitem = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_item").InnerText;
14InBlock.gif        string stype = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_type").InnerText;
15InBlock.gif        string sstdt = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_st_dt").InnerText;
16InBlock.gif        string sendt = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_en_dt").InnerText;
17InBlock.gif        string sstfdt = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_st_dt_fact").InnerText;
18InBlock.gif        string senfdt = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_en_dt_fact").InnerText;
19InBlock.gif        string spropotion = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_propotion").InnerText;
20InBlock.gif        string sresult = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_result").InnerText;
21InBlock.gif        string sScore = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_score").InnerText;
22InBlock.gif
23InBlock.gif        spropotion = (spropotion == "" ? "1" : spropotion);
24InBlock.gif
25InBlock.gif        CWSHr cwsHr = new CWSHr();
26InBlock.gif
27InBlock.gif        if (sAct == "修改")
28ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
29InBlock.gif            string soldsort = xmlDoc.SelectSingleNode("//NewDataSet/tb_o_k_task/c_oldsort").InnerText;
30InBlock.gif            cwsHr.UpdatePersonnelKPIStep(sid, soldsort, ssort, sitem, stype, sstdt,sendt,sstfdt,senfdt, spropotion, sresult,sScore);
31ExpandedSubBlockEnd.gif        }

32InBlock.gif        else if (sAct == "新增")
33ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
34InBlock.gif            cwsHr.SaveNewPersonnelKPIStep(sid, ssort, sitem, stype, sstdt, sendt, sstfdt, senfdt, spropotion, sresult);
35ExpandedSubBlockEnd.gif        }

36InBlock.gif
37ExpandedBlockEnd.gif    }
上面代码的3-6行是获得从客户端传过来的xml.

转载于:https://www.cnblogs.com/DoNetBird/archive/2006/08/25/486665.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值