2012-07-23 112 views
2

我试图用TokenInput jQuery的多值自动完成发送JSON数据它需要如何从ASPX页面

http://loopj.com/jquery-tokeninput/

我使用的ASPX页面源JSON响应作为输入数据

<script type="text/javascript" > 
    $(document).ready(function() { 

    $("#txtTest").tokenInput("Complete.aspx", { 
     theme: "facebook" 
    }); 

    }); 


</script> 

从这里编辑 问题:如何从所需格式的aspx页面提供JSON数据,因为我有根据来自Co的Querystring mplete.aspx

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!string.IsNullOrEmpty(Request.QueryString["q"])) 
    { 
     string json = "[{\"Id\":\"1\",\"name\": \"Test 1\"},{\"Id\":\"2\",\"name\": \"Test 2\"}]"; 
     Response.Clear(); 
     Response.ContentType = "application/json; charset=utf-8"; 
     Response.Write(json); 
     Response.End();    

    } 
} 

任何帮助将不胜感激。

+0

的问题是JSON数据是不会回JavaScript或你想办法建立JSON字符串? – Tomer 2012-07-23 13:15:37

+0

我不知道两个,因为我绑定不使用Firebug工具(IE8)的事情,但数据没有在JSON格式是主要原因的JavaScript达到我认为 – Pratik 2012-07-23 13:19:00

+0

IE8拥有自己的调试工具,访问通过F12键。此外,您可以使用[fiddler](http://www.fiddler2.com/fiddler2/)获取有关请求和响应的全部详细信息。 – 2012-07-23 13:25:29

回答

2

替代WCF,您可以创建的.aspx WebMethod

[WebMethod] 
    public static string Info() 
    { 
     JavaScriptSerializer js = new JavaScriptSerializer(); 
     string result = js.Serialize(new string[] { "one", "two", "three" }); 
     return result; 
    } 

,并要求通过Ajax调用此的WebMethod。

<script type="text/javascript"> 
     $(function() { 
      $("#button1").click(function() { 
       $.ajax({ 
        url: "Default.aspx/Info", 
        data: "{}", 
        contentType: "application/json", 
        success: function (data) { 
         alert(data.d); 
        }, 
        type: "post", 
        dataType : "json" 
       }); 
      }); 
     }); 
</script> 

编辑:

代码隐藏 - 的Page_Load处理程序(JsonPage.aspx)

string json = "[{\"name\":\"Pratik\"},{\"name\": \"Parth\"}]"; 
    Response.Clear(); 
    Response.ContentType = "application/json; charset=utf-8"; 
    Response.Write(json); 
    Response.End(); 

并请求JsonPage.aspx经由TokenInputjQuery。 (Sample.aspx & JsonPage.aspx都在同一个文件夹)

<script type="text/javascript"> 
     $(function() { 
      $("#txt1").tokenInput("JsonPage.aspx"); 
     }); 
</script> 

<body> 
<input type="text" id="txt1"/> 
</body> 
+0

感谢您的帮助,但我使用现有的aspx页面来获得data.And也想用jQuery的TokenInput – Pratik 2012-07-23 14:06:10

+0

@PratikGupta - 您可以使用.aspx写json。什么问题与.aspx页面? – adatapost 2012-07-24 13:30:27

+1

到点我做同样的事情,除了是错过[]括号到返回的数据为什么返回的json数据不是cor矩形格式。非常感谢AVD,我也更新了我的问题 – Pratik 2012-07-26 09:11:02

2

你应该看看WCF。 WCF has native support for returning JSON,您不必担心字符串连接或HTTP内容类型。

+0

我想要一张可以作为此模块的框架下运行2.0代码的实用程序是修复现有的一部分代码。 – Pratik 2012-07-23 13:42:00

+0

在这种情况下,你应该看看使用JayRock。[MSDN有一个例子(http://msdn.microsoft.com/en-us/library/bb299886.aspx)。 – 2012-07-23 16:06:51

+0

嗯,我需要给一个尝试在声明thing.Hope这应该me.Thanks您的帮助克里斯工作 – Pratik 2012-07-23 17:37:25