仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 572|回复: 10
打印 上一主题 下一主题

[学习教程] ASP教程之怎样完成无革新的DropdownList联动效果...

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:38:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!革新|无革新ASP.NET给我们带了了事务模子的编程机制,这使得我们将一切的义务都放在服务器上实行哪怕是一个小小变化,实在这到不是甚么成绩,但是有一点我们没法忍耐,假如我们改动某一个输出框中的内容页面要革新,改动DropDownlist的选择项必要更新另外一个Dropdownlist必要革新,真是忧郁。
上面我将形貌一种原始的办法,之以是说它原是是由于这类办法在ASP.NET之前就已有了,我想这二者之间的干系我不用具体形貌,我们明天要说的是怎样不革新页面更新DropDownList,该办法旨在举一反三,实在利用该办法能够完成很多不革新网页就和背景交互的使用,好了空话就不说了,看看我们的例子吧,起首我们必要一个安排两个DropDownList的页面,假设它叫WebForm2.aspx,页面的代码以下:
<%@Pagelanguage="c#"Codebehind="WebForm2.aspx.cs"AutoEventWireup="false"Inherits="WebApptest1.WebForm2"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD>
<title>WebForm2</title>
<metacontent="MicrosoftVisualStudio.NET7.1"name="GENERATOR">
<metacontent="C#"name="CODE_LANGUAGE">
<metacontent="JavaScript"name="vs_defaultClientScript">
<metacontent="http://schemas.microsoft.com/intellisense/ie5"name="vs_targetSchema">
<script>
functionload(state){
vardrp2=document.getElementById("DropDownList2");
for(vari=0;i<=drp2.options.length-1;i++){
drp2.remove(i);
}
varoHttpReq=newActiveXObject("MSXML2.XMLHTTP");
varoDoc=newActiveXObject("MSXML2.DOMDocument");
oHttpReq.open("POST","webform6.aspx?state="+state,false);
oHttpReq.send("");
result=oHttpReq.responseText;
oDoc.loadXML(result);
items=oDoc.selectNodes("//CITY/Table");
for(varitem=items.nextNode();item;item=items.nextNode()){
varcity=item.selectSingleNode("//city").nodeTypedValue;
varnewOption=document.createElement("OPTION");
newOption.text=city;
newOption.value=city;
drp2.options.add(newOption);
}
}
</script>
</HEAD>
<bodyMS_POSITIONING="flowLayout">
<formid="Form1"method="post"runat="server">
<asp:DropDownListid="DropDownList1"runat="server"></asp:DropDownList>
<asp:DropDownListid="DropDownList2"runat="server"></asp:DropDownList>
</form>
</body>
</HTML>
下面的页面中有两个DropDownList和一段js剧本,该剧本能够间接写在页面也能够写在背景在Regeist到页面上(后者更天真一些)该页的背景代码以下所示,在Page_Load内里写以下的代码:
if(!this.IsPostBack){
SqlConnectioncon=newSqlConnection("server=localhost;database=pubs;uid=sa;pwd=sa;");
SqlDataAdapterda=newSqlDataAdapter("selectstatefromauthorsgroupbystate",con);
DataSetds=newDataSet();
this.DropDownList1.DataTextField="State";
this.DropDownList1.DataValueField="State";
this.DropDownList1.DataBind();
this.DropDownList1.Attributes.Add("onchange","load(this.options[this.selectedIndex].innerText)");
}
在下面的代码中我们做了两件事变:1、帮定个中一个DropDownList(你也能够同时绑定两个)。2、指定该控件的客户端剧本。上面我们具体先容一下下面的js代码,起首失掉页面上要联动的DorpDownList工具,将他的Options清空,再创立两个客户端工具oHttpReq和oDoc工具,个中一个卖力发送哀求另外一个卖力失掉呼应了局,我们将用户选择的State发送到名为WebForm6.aspx的页面,该页面将处置这个哀求并前往一个呼应,该呼应的了局是一个XML文件,稍候先容WebForm6.aspx内里的代码。我们将前往的了局利用loadXML办法Load到oDoc工具内里,然后就能够利用selectNodes办法失掉一切的city节点,接着轮回这些节点在客户端创立Option工具,最初将这些Option工具Add到DropDwonList2内里往。
上面我们看看WebFowm6.aspx都做了些甚么事变,该页面的HTML页面是一个除包含<@Page>指令不测甚么都没有的页面,背景的Page_Load代码以下:
privatevoidPage_Load(objectsender,System.EventArgse){
//Putusercodetoinitializethepagehere
if(this.Request["state"]!=null){
stringstate=this.Request["state"].ToString();
SqlConnectioncon=newSqlConnection("server=localhost;database=pubs;uid=sa;pwd=sa;");
SqlDataAdapterda=newSqlDataAdapter("selectcityfromauthorswherestate="+state+"",con);
DataSetds=newDataSet("CITY");
da.Fill(ds);
XmlTextWriterwriter=newXmlTextWriter(Response.OutputStream,Response.ContentEncoding);
writer.Formatting=Formatting.Indented;
writer.Indentation=4;
writer.IndentChar=;
ds.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();
}
该办法失掉用户选择的state经由过程查询今后失掉一个DataSet工具,利用该工具的WriteXML办法间接将内容写到Response.OutputStream内里然后传送到客户端,客户真个load办法经由过程result=oHttpReq.responseText;句话失掉一个XML字符串,最初剖析此串。

该办法能够完成无革新的联动DropDownList,数据是从背景的数据库中失掉的,但愿能够起到</p>缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。
活着的死人 该用户已被删除
沙发
发表于 2015-1-20 10:50:00 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-20 11:46:08 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
莫相离 该用户已被删除
地板
发表于 2015-1-24 06:14:29 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
再现理想 该用户已被删除
5#
发表于 2015-1-24 16:54:05 来自手机 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
变相怪杰 该用户已被删除
6#
发表于 2015-2-2 11:17:10 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
简单生活 该用户已被删除
7#
发表于 2015-2-7 18:42:00 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
小妖女 该用户已被删除
8#
发表于 2015-2-22 22:18:44 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
老尸 该用户已被删除
9#
发表于 2015-3-7 03:30:54 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
admin 该用户已被删除
10#
发表于 2015-3-14 07:26:23 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
爱飞 该用户已被删除
11#
发表于 2015-3-21 01:00:01 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 14:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表