JQuery不适用于XML.Don';t调用WebMethod
本文关键字:调用 WebMethod 不适用 适用于 XML Don JQuery | 更新日期: 2023-09-27 18:20:48
我有一个用XML数据创建表的页面。在下面的代码中,我编写了一个从SQL创建XML数据的WebMethod。但是,我的页面没有调用此WebMethod,也没有创建此表。这有道理吗?
$(document).ready(function () {
source =
{
datatype: "xml",
datafields: [
{ name: 'User', type: 'string' },
{ name: 'RequestDate', type: 'DateTime' },
{ name: 'SituationDesc', type: 'string' }
],
async: false,
record: 'Table',
url: 'Tickets.aspx/GetTickets',
};
var dataAdapter = new $.jqx.dataAdapter(source, {
contentType: 'application/json; charset=utf-8'}
});
$("#jqxgrid").jqxGrid(
{
width: 670,
source: dataAdapter,
theme: 'classic',
columns: [
{ text: 'Product Name', datafield: 'User', width: 250 },
{ text: 'Date', datafield: 'RequestDate', cellsalign: 'right', cellsrenderer: cellsrenderer, width: 100 },
{ text: 'Situation', datafield: 'SituationDesc', cellsalign: 'right', cellsrenderer: cellsrenderer, width: 100 },
]
});
});
<body class='default'>
<div id='jqxWidget' style="font-size: 13px; font-family: Verdana; float: left;">
<div id="jqxgrid">
</div>
</div>
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Xml)]
public string GetTickets()
{
string query = "SELECT [User],RequestDate,SituationDesc, FROM Ex";
SqlCommand cmd = new SqlCommand(query);
DataSet data = GetData(cmd);
System.IO.StringWriter w = new System.IO.StringWriter();
data.Tables[0].WriteXml(w, XmlWriteMode.WriteSchema, false);
return w.ToString();
}
private DataSet GetData(SqlCommand cmd)
{
string strConnString = ConfigurationManager.ConnectionStrings["XX"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds);
return ds;
}
}
}
}
您实际上还没有为Ajax声明一个要调用的静态方法。
我还没有看完你所有的代码,尽管这部分肯定是不正确的。。
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Xml)]
public string GetTickets()
{
应注意"静态"声明
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Xml)]
public static string GetTickets()
{
此外,请尝试安装Firebug(或类似程序),您将能够在尝试调用该方法时看到浏览器中出现的错误。这将帮助您进一步识别任何可能的额外错误。
您还需要在进行上述更改后将private DataSet GetData(SqlCommand cmd)
声明为static
,否则它将无法访问。