js调用后盾方法返回dataset
js调用后台方法返回dataset
后台方法:
JS调用:
前台调用:
在输入框里输入文字,有时会出现这样的问题:
Uncaught TypeError:Cannot read property 'Tables' of null
我查了好久,也不知道是为什么?希望能得到好心人的帮助~~
------解决方案--------------------
在keyup事件中执行ajaxpro方法好像快了一点,应该是动态页没处理好并发导致出错,而你代码没有判断是否出错,而直接使用Tables导致出错了。
增加错误检查
后台方法:
- C# code
[AjaxMethod] public DataSet GetData(string UserName) { DataSet ds = new DataSet(); DataTable users= Search.ByUsername(UserName); ds.Tables.Add(users); return ds; }
JS调用:
- JScript code
function showinfo() { var username =$.trim($("#txtUsername").val()); UserManage.UserEdit.GetData(username, function (r) { $("#seluser").empty(); var ds = r.value; if (ds.Tables[0].Rows.length > 0){ $("#Dialoge").show(); var Select = $("#seluser");//id为seluser的select控件 for (var i = 0; i < r.value.Tables[0].Rows.length; i++) { var opt = new Option(ds.Tables[0].Rows[i]["UserName"] , ds.Tables[0].Rows[i]["age"]); Select [0].options.add(opt); } } else { $("#Dialoge").hide(); } }); }
前台调用:
- C# code
<input id="txtUsername" runat="server" onkeyup="showinfo()" />
在输入框里输入文字,有时会出现这样的问题:
Uncaught TypeError:Cannot read property 'Tables' of null
我查了好久,也不知道是为什么?希望能得到好心人的帮助~~
------解决方案--------------------
在keyup事件中执行ajaxpro方法好像快了一点,应该是动态页没处理好并发导致出错,而你代码没有判断是否出错,而直接使用Tables导致出错了。
增加错误检查
- JScript code
function showinfo() { var username =$.trim($("#txtUsername").val()); UserManage.UserEdit.GetData(username, function (r) { if(r.error){alert('动态页出错\n'+r.error.message);return false;}///////// $("#seluser").empty(); var ds = r.value; if (ds.Tables[0].Rows.length > 0){ $("#Dialoge").show(); var Select = $("#seluser");//id为seluser的select控件 for (var i = 0; i < r.value.Tables[0].Rows.length; i++) { var opt = new Option(ds.Tables[0].Rows[i]["UserName"] , ds.Tables[0].Rows[i]["age"]); Select [0].options.add(opt); } } else { $("#Dialoge").hide(); } }); }