1、在网站中引用Microsoft.Web.Preview.dll程序集,百度一下就可下载;
2、在webconfig文件中加入以下代码:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="5000">
<converters>
<add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</converters>
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
这是对Microsoft.Web.Preview.dll中提供的3个转换器[DataSet,DataTable,DataRow]的一个引用声明。
3、在后台文件中编写相应的方法返回一个dataset,然后在js文件中调用即可。(关于js文件中怎么调用后台文件中的方法,请参考【js中如何调用后台文件中的方法】)。
案例:
后台文件中的方法:
[WebMethod]
public static DataSet AttributeQuery()
{
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Items.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from Items";
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
//DataSet myDataSet = new DataSet();
DataSet myDataSet = new DataSet();
adapter.Fill(myDataSet);
return myDataSet;
}
}
}
js中的代码:
<script type="text/javascript">
function btnClick() {
PageMethods.AttributeQuery(OnSuccess);
}
function OnSuccess(result) {
var json = Sys.Serialization.JavaScriptSerializer.serialize(result);
var jsondataset = new System.Data.DataSet();
eval("jsondataset=" + json);
alert(json);
alert(jsondataset.tables[0].rows[0].ItemID);
}
</script>
前台文件:
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type="button" value="按钮" οnclick="btnClick()" />
<asp:Button ID="Button1" runat="server" Text="Button" οnclick="Button1_Click" />
<esri:TaskResults ID="TaskResults1" runat="server" BackColor="#ffffff" Font-Names="Verdana"
Font-Size="8pt" ForeColor="#000000" Height="200px" Width="200px" />
</form>
</body>
这里注意的是要在前台文件中添加ScriptManager标签,因为这种实现是基于.net ajax技术的,具体的请参考.net ajax技术。