页面中的脚本如下:function btnInvoke_onclick()
{
var theName = document.getElementById("tbName").value;
SimpleWebService.SayHello(theName, onSayHelloSucceeded);//此处出错。
}function onSayHelloSucceeded( result )
{
document.getElementById("result").innerHtml = result;
}
aspx页面文件:<from id="form1" runat="server">
<asp:ScriptManager ID="sm" EnablePateMethods="true" runat="server">
<Service>
<asp:ServiceReference Path="Services/SimpleWebService.asmx" />
</Service>
</asp:ScriptManager>
<div>
<input id="tbName" type="text" />
<input id="btnInvoke" type="button" value="Say Hello" onclick="return btnInvoke_onclick()
" />
<div id="result" ></div>
<div>
</from>
SimpleWebService.asmx文件中的内容:......
using System.Web.Script.Service;
......namespace WebApplication1
{
....
....
[ScriptService]
public class SimpleWebService : System.Web.Services.WebService
{
[WebMethod]
public string SayHello( string name )
{
return string.Format( "Hello {0}!", name );
}
}
}
出现的错误是:
Microsoft JScript 运行时错误:‘SimpleWebService’未定义。我在网上找了一些说法:
1. 路径问题:该webservice文件时建立在WebApplication1下的,与页面在同一个文件夹下。
2. 添加命名空间,由于该webservice文件时建立在WebApplication1下的,因此命名空间与CS文件的命名空间是一致的,如果硬要写成:WebApplication1.SimpleWebService.SayHello(theName, onSayHelloSucceeded);
错误就是WebApplication1未定义。该程序是从网上的某个博客中找到的,据博主所说,内容出自“APS.NET AJAX 程序设计”。请教怎么处理,谢谢!
{
var theName = document.getElementById("tbName").value;
SimpleWebService.SayHello(theName, onSayHelloSucceeded);//此处出错。
}function onSayHelloSucceeded( result )
{
document.getElementById("result").innerHtml = result;
}
aspx页面文件:<from id="form1" runat="server">
<asp:ScriptManager ID="sm" EnablePateMethods="true" runat="server">
<Service>
<asp:ServiceReference Path="Services/SimpleWebService.asmx" />
</Service>
</asp:ScriptManager>
<div>
<input id="tbName" type="text" />
<input id="btnInvoke" type="button" value="Say Hello" onclick="return btnInvoke_onclick()
" />
<div id="result" ></div>
<div>
</from>
SimpleWebService.asmx文件中的内容:......
using System.Web.Script.Service;
......namespace WebApplication1
{
....
....
[ScriptService]
public class SimpleWebService : System.Web.Services.WebService
{
[WebMethod]
public string SayHello( string name )
{
return string.Format( "Hello {0}!", name );
}
}
}
出现的错误是:
Microsoft JScript 运行时错误:‘SimpleWebService’未定义。我在网上找了一些说法:
1. 路径问题:该webservice文件时建立在WebApplication1下的,与页面在同一个文件夹下。
2. 添加命名空间,由于该webservice文件时建立在WebApplication1下的,因此命名空间与CS文件的命名空间是一致的,如果硬要写成:WebApplication1.SimpleWebService.SayHello(theName, onSayHelloSucceeded);
错误就是WebApplication1未定义。该程序是从网上的某个博客中找到的,据博主所说,内容出自“APS.NET AJAX 程序设计”。请教怎么处理,谢谢!
解决方案 »
- 15条数据为何只读出了14条,第一条没有读出
- 我把验证码和密码框都放在更新面板里面,我希望点击刷新验证码的时候不清空密码框。怎么做?
- 怎么动态取得当前浏览页的网址呢?
- 高技术性问题 ext1 gridpanel 导出excel
- 从UltraWebGrid中导出为Excel表碰到的问题!!急,在线等!!!
- .net怎么安装不上阿
- 请教:我的Access数据库,在我的机器上正常正常打开,可是我传到服务器上,再下载下来就打不开了。提示“不可识别的数据库”为什么?
- 用updatepanel时的异常处理问题
- 原来升级到 ASP.NET 2.0 出现的问题
- 求解asp.net mvc3 分部视图怎么用
- ajax从javascript传参至asp.net,接收不到变量
- .net入门视频教程
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>jQuery Ajax 调用 WebService 返回数据表(DataTable)的方法。</title>
<script type="text/javascript" src="jquery-1.5.js"></script>
<script type="text/javascript">
function ParseDate(jsonDate) {
var date = new Date(parseInt(jsonDate.substr(6)));
return date.toLocaleString();
}
function GetData() {
$.ajax({
type: "post", //注意这里是 post
url: "WebService.asmx/GetDataTable",
data: "{\"id\":\"8888\"}",
contentType: "application/json;charset=utf-8", //提交数据的方法格式
dataType: "json", //返回数据的格式
success: function (result) {
//你可以 alert(result.d)看数据返回的格式
data = jQuery.parseJSON(result.d);
t = "<table border='1'>";
$.each(data, function (i, item) {
t += "<tr>";
t += "<td>" + item.UserId + "</td>";
t += "<td>" + item.Name + "</td>";
t += "<td>" + item.Count + "</td>";
t += "<td>" + ParseDate(item.CreateDate)+ "</td>";
t += "</tr>";
})
t += "</table>";
$("#result").html(t);
},
error: function (result) { alert(result.responseText); }
});
}
window.onload = GetData; </script>
</head>
<body>
<div id="result"></div>
</body>
</html>后台的WebService代码:
WebService.asmx 代码
<%@ WebService Language="C#" Class="WebService" %>using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Serialization;
using System.Collections;
using System.Collections.Generic;
using System.Data;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{ [WebMethod]
public String GetDataTable(int id)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
dt.Columns.Add(new System.Data.DataColumn("Name", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("Count", typeof(System.Double)));
dt.Columns.Add(new System.Data.DataColumn("CreateDate", typeof(System.DateTime)));
dt.PrimaryKey = new System.Data.DataColumn[] { dt.Columns["UserId"] };
System.Random rd = new System.Random();
for (int i = 0; i <6; i++)
{
dr = dt.NewRow();
dr[0] = i + i;
dr[1] = "【孟子E章】" + id.ToString();
dr[2] = System.Math.Ceiling(rd.NextDouble() * 1000);
dr[3] = DateTime.Now.AddDays(rd.Next(100) - rd.Next(100));
dt.Rows.Add(dr);
}
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row = null; foreach (DataRow dr1 in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName, dr1[col]);
}
rows.Add(row);
}
return serializer.Serialize(rows);
}
}
不过,我还是想知道我的程序错在哪里了?
[System.Web.Script.Services.ScriptService]
public class SimpleWebService : System.Web.Services.WebService然后再用你原来的方法试试,看会不会出错