2010-10-28 31 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 
     } 
    } 
}