与服务器通信时发生错误

时间:2013-03-20 12:30:27

标签: asp.net json jquery-jtable

我在jquery modile的代码中使用jTable,我从查询字符串获取参数并绑定到jtable,但是我得到错误:在与服务器通信时发生错误。

这是我的代码

  <script type="text/javascript">
            $(document).delegate('.ui-page', 'pageshow', function () {
                $('#ResultContainer').jtable({
                    title: 'Search List',
                    paging: true, //Enables paging
                    pageSize: 10, //Actually this is not needed since default value is 10.
                    sorting: true, //Enables sorting
                    actions: {
                        listAction: "SearchResult.aspx/GetSearch"

                    },
                    fields: {
                        Ref: {
                            title: "Ref",
                            width: '30%'
                        },
                        Trademark: {
                            title: 'Trademark',
                            width: '30%'
                        }
                    }
                });
                $('#ResultContainer').jtable('load', {
                    org: '<%= Request["org"] %> ',
                    catchword: ('<%= Request["tm"] %> ')
                });
            });

我的网络方法是

[WebMethod(EnableSession = true)]
public static object GetSearch(string org, string catchword, int jtStartIndex, int jtPageSize, string jtSorting)
{
    List<Coverage> tm = new List<Coverage>();
    try
    {
        //Get data from database
        using (ORepository repository = new ORepository())
        {
            tm = repository.getCoveragebyTM(catchword, org,0,10,"catchword");
            int cnt = tm.Count;
            return new { Result = "OK", Records = tm, TotalRecordCount = cnt };
        }
    }
    catch (SqlException ex)
    {
        return new { Result = "ERROR", Message = ex.Message };
    }
}

任何人都可以帮助我。如何致电$('#ResultContainer').jtable('load', {.. 在页面加载?

编辑:

我收到此消息的响应 {“Message”:“无效的Web服务调用,缺少参数值:\ u0027org \ u0027。”,“StackTrace”:“at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target,IDictionary 2 parameters)\r\n at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary 2个参数)\ r \ n在System.Web.Script.Script.Services.RestHandler.InvokeMethod(HttpContext context,WebServiceMethodData methodData,IDictionary`2 rawParams)\ r \ n在System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context) ,WebServiceMethodData methodData)“,”ExceptionType“:”System.InvalidOperationException“}

3 个答案:

答案 0 :(得分:3)

您没有为org和catchword参数传递任何值。您可以使用listAction执行此操作:“SearchResult.aspx / GetSearch?org = asd&amp; catchword = asd”

此外,您可以使用firebug或chrome dev工具检查网络包,以查看错误详细信息。

答案 1 :(得分:1)

JTable执行结果,有两个状态标识,ok和其他。当状态是!好的,如果非数字状态出现此错误,将报告您的消息。建议在源代码中使用数字识别和校正作为状态背景。

            String error="{\"Result\":\"ERROR\",\"Message\":"+100+"}";
                    response.getWriter().print(error);
    if (data.Result != 'OK') {
                        if(data.Message == 100){
                            self._showError('未登录!请重新登录');
                        }else{
                            self._showError(data.Message);
                        }
                        //window.location.href="login.jsp";
                        return;
                    }
if (data.Result != 'OK') {
                        if(data.Message == 100){
                            self._showError('未登录!请重新登录');
                        }else{
                            self._showError(data.Message);
                        }
                        //window.location.href="login.jsp";
                        return;
                    }

答案 2 :(得分:0)

通过将值传递给jtStartIndex,jtPageSize,jtSorting来解决)谢谢