2012-07-23 191 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