2010-10-28 33 views
0

我有一個asp.net頁面,並在名爲txtTitle的問題文本框中寫入一些單詞。移至另一個名爲txtbox2的txtbox後,我想根據txtbox1txtbox2之前的空格中鍵入的關鍵字打開問題建議頁面。我試過這個,但它不工作。誰能幫忙?根據關鍵字創建查詢建議頁面

<script type="text/javascript"> 
    $(function() { 
    $("#txtTitle").blur(function() { QuestionSuggestions(); }); 
    }); 

    function QuestionSuggestions() { 
     var s = $("#txtTitle").val(); 
     if (s.length > 2) { 
      document.title = s + " - ABC"; 
      $("#questionsuggestions").load("QuestionList.aspx?title=" + escape(s)); 
     } 
    } 
</script> 
+0

你真的只是複製和粘貼來自另一個SO線程的代碼,然後讓別人爲你做你的工作嗎? http://stackoverflow.com/questions/4022894/regarding-a-piece-of-code 你試過了什麼?你得到什麼錯誤?它是如何「不工作」? 您至少應該證明您正在嘗試自己解決這個問題。 – Chuck 2010-10-28 11:52:51

回答

0

在ASP.Net/C#中創建一個加載建議的WebService WebMethod。您在WebMethod中的代碼將加載含有建議的數據表。在您的WebMethod中,將DataTable作爲散列表返回,並自動轉換爲JSON對象。

public Suggestions<Hashtable> GetSuggestion() 
    { 
     DataTable dt = new DataTable(); 
     List<Hashtable> ht = new List<Hashtable>(); 
     string q = Context.Request.QueryString["Q"]; 
     dt = [code to load datatable] 
     ht = MethodToConvertToHashTable(dt); 
     dt.Dispose(); 
     return ht; 
    } 

在你txtTitle.blur功能,通話問題的建議,這確實一個jQuery AJAX調用的WebMethod(我離開了明顯)。

function QuestionSuggestions() { 
    var s = $("#txtTitle").val(); 
    var myJSON = $.ajax({ 
     url: '/directory/svc/yourwebservicepage.asmx/GetSuggestion?Q=' + s, 
     type: 'POST', 
     contentType: 'application/json', 
     success: function (msg) { 
        var d = msg.d; //THIS IS YOUR JSON OBJECT 
     } 
    } 
}