通过Jquery ajax为datagrid加载数据?
我有这段代码片段(虽然不完整,但忽略了结束脚本标签)::
function gotoa(){ var h = $.get("http://localhost:8080/2_8_2012/jsp/GetJson.jsp", function(result) { }); alert(result); var myVar= h; var storedata={ identifier:"ID", label:"name", items: myVar }; var store = new dojo.data.ItemFileWriteStore({data: storedata});
GetJson.jsp的代码是::
Insert title here
我有一个查询get方法。 我传入的URL返回一个Json数组字符串。 URL的输出::
[{"ID":1,"Names":"Shantanu","Email":"shantanu.tomar@gmail.com"},{"ID":2,"Names":"Mayur","Email":"mayur.sharma@gmail.com"},{"ID":3,"Names":"Rohit"},{"ID":4,"Names":"Jasdeep"},{"ID":5,"Names":"Rakesh","Email":"rakesh.shukla@gmail.com"},{"ID":6,"Names":"Divyanshu"},{"ID":8,"Names":"hello"},{"ID":9,"Names":"fine"},{"ID":10,"Names":"shivani"}]
现在我想要我的数据网格的输出,即我希望var myVar应该获得此值,然后它将传递给dojo.data.ItemFileWriteStore。 我无法这样做。 请帮忙 ? 谢谢。
$.get()
函数是使用$.ajax()
函数进行AJAX调用的简写 – 而且,众所周知,AJAX中的第一个A代表异步。 如果要使用AJAX调用的响应来执行代码,则需要将该代码放在传递给$.get()
的回调函数中。
它可能看起来像这样(虽然没有完整的代码,我不能肯定地说:
function gotoa() { var store; var h = $.get("http://localhost:8080/2_8_2012/jsp/GetJson.jsp", function(result) { var myVar = result; var storedata={ identifier:"ID", label:"name", items: myVar }; store = new dojo.data.ItemFileWriteStore({data: storedata}); // do whatever with store here, if necessary }); }
像这样修改你的脚本标签:
GetJson.jsp的代码是:
<%@page contentType="application/json" %> <%@page import="MyPackage.PopulateTextbox" %> <% String temp1; PopulateTextbox obj = new PopulateTextbox(); temp1 = obj.method(); %> <%=temp1 %>
现在调用gotoa()
它将初始化ajax调用并获得回调函数中的响应