马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
计算机发展到这个时候,很多技术日益成熟,想学好一种技术都是不容易的,当你学会用的时候你对它的很多原理可能很不了解)ajax|datagrid|datagrid控件|编程 简介
在传统的Web开辟中,每次DataGrid控件添补或更新都响应于一次到服务器的数据回馈。可是,借助于AJAX手艺,我们能够在不举行表单提交(革新)的情形下便可以添补DataGrid控件。
在本文中,我们经由过程一个复杂示例并借助于一个DropDownList控件的匡助来会商怎样到达这一目标。在这个例子中,我们利用了一个DropDownList控件;一旦改动DropDownList的值,它即用响应的乡村名来添补DataGrid控件,在此过程当中我们奇妙了引进了AJAX手艺。
既然我们已懂得一些AJAX的基础常识,如今让我们进一步会商这个DataGrid示例程序。在本例中,我们次要注释怎样从客户端发送哀求,怎样处置哀求,和怎样运转客户端剧本来显现DataGrid中的数据。
示例使用程序布局
在本例中,我们共创建了两个Web表单(AjaxServer.aspx和DataGridEx.aspx),一个JavaScript文件和一个层叠式样表文件(CSS)。文件AjaxServer.aspx卖力服务器端功效(一旦选择即前往作者了局),而文件DataGridEx.aspx卖力利用AJAX手艺显现前往的了局。上面让我们作进一步剖析。
1.AjaxServer.aspx
这个页面以选择的“City”作为哀求。它取回一切的属于该乡村的作者而且把一个XML呼应字符串前往到客户端(见列表1)。
列表1―AjaxSever.aspx.vb代码- PrivateSubPage_Load(ByValsenderAsSystem.Object,
- ByValeAsSystem.EventArgs)HandlesMyBase.Load
- IfNotIsPostBackThen
- choice=Request("Choice")
- Ifchoice.Length>0Then
- Response.Clear()
- Ifchoice="AllCities"Then
- DA=NewSqlDataAdapter("select*fromauthors",con)
- Else
- DA=NewSqlDataAdapter("select*fromauthorswherecity="&Request("Choice")&"",con)
- EndIf
- DA.Fill(ds)
- chString=ds.GetXml()
- Response.Clear()
- Response.ContentType="text/xml"
- Response.Write(chString)
- Response.End()
- Else
- Response.Clear()
- Response.End()
- EndIf
- Else
- Response.Clear()
- Response.End()
- EndIf
- EndSub
复制代码 2.DataGridEx.aspx
这个页面入手下手把一切的作者信息显现在DataGrid中。每当DropDownList中产生变更,它利用JavaScript文件取回内容并预以显现。注重:为了显现以后正运转的历程的情况,我们在此利用了一个面板。该面板具有一个GIF图象(入手下手不成见)―在处置产生于服务器端时它被显现,而一旦处置停止即变成不成见的(见)。我们如许做的基本目标就是为了让用户具体懂得以后正运转的历程情形。
.DatagridEx.aspx的快照(为了显现历程)
3.JavaScript文件
这个文件卖力全部历程的处置哀求和呼应。这个文件将天生XMLHttpRequest而且把选择的乡村发送到AjaxServer.aspx页面。一旦前往,它失掉一个相似于数据库表的输入了局―该了局将被添补到DataGrid中。
一入手下手,上图面板中的“历程”图象是不成见的。当DropDownList选择产生变更时,“历程”图象就显现出来,直到用前往的了局添补DataGrid为止(见列表2)。该DataGrid被前往的数据添补―经由过程利用一个复杂的for轮回来读取前往的内容(见列表3)。
列表2―历程形态- functionFetchDGContents(){
- varselecteditem=document.Form1.ddlcity.value;
- imgtbl.style.visibility=visible;
- varrequestUrl=AjaxServerPageName+"?Choice="+
- encodeURIComponent(selecteditem);
- CreateXmlReq();
- if(XmlReq){
- XmlReq.onreadystatechange=HandleResponse;
- XmlReq.open("GET",requestUrl,true);
- XmlReq.send();
- }
- }
复制代码 列表3―利用收到的呼应数据添补DataGrid控件- functionFillTable(scity){
- varauth=scity.getElementsByTagName(Authors);
- vartbl=document.getElementById(dgauthors).getElementsByTagName("tbody")[0];
- for(vari=0;i
- {
- varrow=document.createElement("TR");
- row.setAttribute("className","text");
- row.setAttribute("bgColor","#ECECEC");
- for(varj=0;j
- {
- varcell=document.createElement("TD");
- cell.innerHTML=auth.context.childNodes(i).childNodes(j).text;
- row.appendChild(cell);
- }
- tbl.appendChild(row)
- }
- }
复制代码 运转示例代码
你能够下载本文响应的示例源码举行剖析。起首,创立一个定名为MyAjax的假造目次,然后把解压后的文件复制到该目次下便可。最初,翻开VisualStudio.NET办理计划资本办理器并按F5键运转程序,并察看了局。
总结
本文经由过程一个复杂的例子―利用AJAX手艺操纵DataGrid控件―来显现服务器挪用的处置形态。这是把AJAX手艺使用于.NET平台Web开辟的又一复杂示例。
c++是语言,其实C++和java的应用范围根本就不一样的。在java应用的领域内,c++是不合适的。所以微软才搞了C#和Java对抗。 |