|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在CSDN里搜索一下“初学”两字,竟有三百余篇帖子(也许更多)。有些帖子说,有了asp的基础,只要15天就能很熟悉了,我甚感自己的愚钝。更多帖子是向大家请教初学者适合看书。两个多月的时间(当然平常杂事比较多。ajax|asp.net|web|示例ASP.NET2.0AJAX中可以在客户端js中很便利地挪用服务器Webservice,以下为一些挪用的示例。笔者安装的ASP.NET2.0AJAX
版本为AJAXNovemberCTP。
三个示例分离为:
1带参数的WS办法
2不带参数的WS办法
3参数范例为DataTable的WS办法
1、WebMethod
注重要点:
1WebMethod类必要增加定名空间Microsoft.Web.Script.Services,此空间必要援用Microsoft.Web.Preview.dll
2类声明到场标签[ScriptService]
3在Asp.net2.0里能够间接用DataTable作为前往范例了,可是必要在Web.config文件增加序列化转换器的属性。DataSet、DataTable、DataRow均有转换器
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization>
<converters>
<addname="DataSetConverter"type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter,Microsoft.Web.Preview"/>
<addname="DataRowConverter"type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter,Microsoft.Web.Preview"/>
<addname="DataTableConverter"type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter,Microsoft.Web.Preview"/>
</converters>
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
WEB服务1:WS1
usingSystem;
usingSystem.Web;
usingSystem.Collections;
usingSystem.Web.Services;
usingSystem.Web.Services.Protocols;
usingMicrosoft.Web.Script.Services;
usingSystem.Data;
/**////<summary>
///WS1的择要申明
///</summary>
[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[ScriptService]
publicclassWS1:System.Web.Services.WebService{
publicWS1(){
//假如利用计划的组件,请作废正文以下行
//InitializeComponent();
}
[WebMethod]
publicstringServerTime()
{
returnString.Format("now:{0}",DateTime.Now);
}
[WebMethod]
publicDataTableGetDataTable()
{
DataTabledt=newDataTable("Person");
dt.Columns.Add(newDataColumn("Name",typeof(string)));
dt.Columns.Add(newDataColumn("LastName",typeof(string)));
dt.Columns.Add(newDataColumn("Email",typeof(string)));
dt.Rows.Add("kui","he","hekui168@163.com");
dt.Rows.Add("ren","chao","chaoren888@163.com");
returndt;
}
}
WEB服务2:WS
usingSystem;
usingSystem.Web;
usingSystem.Collections;
usingSystem.Web.Services;
usingSystem.Web.Services.Protocols;
usingMicrosoft.Web.Script.Services;
/**////<summary>
///WS的择要申明
///</summary>
[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[ScriptService]
publicclassWS:System.Web.Services.WebService{
publicWS(){
//假如利用计划的组件,请作废正文以下行
//InitializeComponent();
}
[WebMethod]
[ScriptMethod(UseHttpGet=true)]
publicstringHelloWorld(Stringquery)
{
stringinputString=Server.HtmlEncode(query);
if(!String.IsNullOrEmpty(inputString))
{
returnString.Format("hello,{0}.",inputString);
}
else
{
return"querystringisnullorempty";
}
}
}
2、前台页面:
注重要点:
必要利用的背景WebService的办法均设置在以下地位
<asp:ScriptManagerID="ScriptManager1"runat="server">
<Services>
<asp:ServiceReferencePath="~/WS.asmx"/>
<asp:ServiceReferencePath="~/WS1.asmx"/>
</Services>
</asp:ScriptManager>
Default页面:
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>UntitledPage</title>
<scriptlanguage="javascript"type="text/javascript"src="js.js">
</script>
</head>
<body>
<formid="form1"runat="server">
<asp:ScriptManagerID="ScriptManager1"runat="server">
<Services>
<asp:ServiceReferencePath="~/WS.asmx"/>
<asp:ServiceReferencePath="~/WS1.asmx"/>
</Services>
</asp:ScriptManager>
<div>
<asp:ButtonID="Button1"runat="server"Text="Button"OnClientClick="dd();returnfalse;"/>
<divid="time">
</div>
<divid="List1">
<asp:DropDownListID="ddl1"runat="server"Width="187px">
</asp:DropDownList>
</div>
</div>
</form>
</body>
</html>
3、JavaScript程序:
注重要点:
AJAXNovemberCTP必要用eval()办法将其转换成一个DataTable工具(而且要裁失落最后面的"("),而AJAXDecemberCTP撑持以下办法转换“Sys.Preview.Data.DataTable.parseFromJson(result)”
functiondd()
{
WS.HelloWorld(
hekui,
function(result)
{
alert(result);
}
);
WS1.ServerTime(
function(result)
{
alert(result);
vardivTime=document.getElementById("time");
divTime.innerHTML=result;
}
);
WS1.GetDataTable(
function(result)
{
//猎取到下拉框控件
varList=document.getElementById("ddl1");
//AJAXNovemberCTP必要用eval()办法将其转换成一个DataTable工具(而且要裁失落最后面的"(")
varText=result.dataArray.substring(0,result.dataArray.length-1);
varTable=eval(Text);
//AJAXDecemberCTP撑持以下办法转换
//varTable=Sys.Preview.Data.DataTable.parseFromJson(result);
//扫除下拉框原有列表项
for(x=List.options.length-1;x>-1;x--)
{
List.remove(0);
}
//从猎取的DataTable增加数据到下拉框列表项
for(x=0;x<Table.length;x++)
{
//猎取每行
varRow=Table[x];
//创立一个列表项
varoption=document.createElement("option");
//列表项显现文本赋值
option.text=Row.Name+""+Row.LastName;
//列表项选项值赋值
option.value=Row.Email;
//判别扫瞄器范例,举行项目增加
if(window.navigator.appName.toLowerCase().indexOf("microsoft")>-1)
List.add(option);
else
List.add(option,null);
}
}
);
}
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。 |
|