2012-03-07 13 views
7

के रूप में सूची साथ jQuery स्वत: पूर्ण मैं पाठ बॉक्स नाम txtEmailList है, मैं फ़ायरबग में इसके लिए स्वतः पूर्ण सूची, स्वत: पूर्ण स्रोत

$('#txtEmailList').autocomplete({ 
       source: function(request, response) { 
// this is the ajax call, which is running successfully 
        var msg = 
Assessments_JqueryAutoComplete.AutoComplete(request.term).value; //(ajaxpro functions) 
        response(msg.d); 
       } 

      }); 

उत्पादन इस तरह के रूप में आ जाएगा के लिए

<asp:TextBox runat="server" ID="txtEmailList" CssClass="txtAutoComplete"> 

स्क्रिप्ट (बशर्ते यह सादा/पाठ के रूप में दिखाता है), मैं इस सरणी को स्रोत संपत्ति में कैसे संलग्न कर सकता हूं। (मैं $ .ajax विधि का उपयोग नहीं कर सकता, क्योंकि मुझे AJAXpro का उपयोग कार्यालय नियमों के रूप में करने की आवश्यकता है), इसलिए मुझे AJAX कॉल से सरणी की सूची मिलती है, मैं स्वतः पूर्ण कैसे बांधूं।

[ "सूची 1", "सूची 2", "सूची 3", "सूची 4"];/* // इस (फ़ायरबग से)

[AjaxPro.AjaxMethod(HttpSessionStateRequirement.ReadWrite)] 
public List<string> AutoComplete(string query) 
{ 
List<string> objLisItmes = new List<string>(); 
objLisItmes.Add("List 1"); 
objLisItmes.Add("List 2"); 
objLisItmes.Add("List 3"); 
objLisItmes.Add("List 4"); 
return objLisItmes; 
} 
jQuery से उत्पादन प्रतिक्रिया है

इस प्रतिक्रिया हेडर के लिए में फ़ायरबग उत्पादन होता है

कैश-Controlno-कैश सामग्री-Length40 सामग्री-Typetext/सादे; charset = utf-8 DateWed, 07 मार्च 2012 10:45:37 GMT समाप्त हो रहा है-1Pragmano-कैश

+0

मुझे लगता है कि आप क्या मिलता है वापस जाने के लिए सर्वर से जरूरत है ... – gdoron

+0

कैसे? मैंने पहले से ही प्रतिक्रिया की कोशिश की है (msg.d) लेकिन यह स्वत: पूर्ण –

+0

नहीं दिखा रहा है ...इसे लिखें: 'वापसी संदेश;' – gdoron

उत्तर

5

के बजाय एक सूची लौट रहा। मैं के रूप में एक स्ट्रिंग सरणी वापसी होगी:

[AjaxPro.AjaxMethod(HttpSessionStateRequirement.ReadWrite)] 
public string[] AutoComplete(string query) 
{ 
    List<string> objLisItmes = new List<string>(); 
    objLisItmes.Add("List 1"); 
    objLisItmes.Add("List 2"); 
    objLisItmes.Add("List 3"); 
    objLisItmes.Add("List 4"); 
    return objLisItmes.ToArray(); 
} 
+0

क्या बदल जाएगा? क्या यह मदद करेगा, सरणी लौटकर कैसे? इससे मदद मिलेगी? –

+0

सूची ठीक काम करना चाहिए, और ऐसा लगता है कि आप कह रहे हैं कि आप आइटम की सूची वापस ले रहे हैं। क्या आप टेक्स्टबॉक्स के लिए एचटीएमएल दिखा सकते हैं? – JCherryhomes

+0

धन्यवाद :) किसी भी तरह से यह काम करता है। अब, लेकिन मुझे यह विचार नहीं मिल रहा है कि ToArray() की आवश्यकता क्यों है? –

2

इसके बजाय

$('#txtEmailList') 

का उपयोग कर के आप किसी सर्वर नियंत्रण पाठ बॉक्स अपने आईडी का उपयोग कर रहे चूंकि यह सबसे अधिक संभावना समाप्त हो रहा है के लिए

$('input[id$="txtEmailList"]') 

का उपयोग करके देखें "parentID1_parentID2_txtEmailList" जैसे कुछ के रूप में। उपर्युक्त कोड उस इनपुट को पकड़ लेगा जिसमें एक आईडी है जो "txtEmailList" के साथ समाप्त होती है।

यहां बताया गया है कि मैं इसे अपने परीक्षण प्रोजेक्ट में कैसे कर रहा हूं और यह काम कर रहा है। बेशक मैं अजाक्सप्रो का उपयोग नहीं कर रहा हूं, इसलिए मुझे यकीन नहीं है कि आप इसे इसके साथ कैसे करेंगे, लेकिन शायद यह आपको कुछ विचार देगा।

<script type="text/javascript"> 
     $(function() { 
      var element = $('input[id$="TextBox1"]'); 

      element.autocomplete({ 
       source: function (request, response) { 
        $.ajax({ 
         url: "Default.aspx/GetList", 
         data: "{ 'term': '" + request.term + "' }", 
         dataType: "json", 
         type: "POST", 
         contentType: "application/json; charset=utf-8", 
         dataFilter: function(data) { return data; }, 
         success: function (data) { 
          response($.map(data.d, function (item) { 
           return { 
            value: item 
           } 
          })) 
         } 
        }) 
       } 
      }); 
     }); 
    </script> 
+0

diff क्या है? क्योंकि मैं इसे सीधे एक्सेस कर रहा हूं। ? मुझे लगता है कि यह जवाब नहीं है। यहां तक ​​कि jquery autocomplete –

+0

के खुले फ़ंक्शन में आने के बाद भी मैंने – JCherryhomes

+0

को ग्रिड व्यू में नहीं समझाए जाने के लिए अपना उत्तर अपडेट किया। इस तरह प्रस्तुत करने के लिए। यह एक div में सादे टेक्स्टबॉक्स में है, यहां तक ​​कि मैंने रेंडर आईडी की जांच की है, यह जेवीरी चयनकर्ता में मैंने जो कुछ दिया है वैसा ही है। इसलिए मुझे लगता है कि प्रतिक्रिया प्रकार के साथ मुद्दा होगा –

1

यह हो नहीं करना चाहिए:

$('#txtEmailList').autocomplete({source: function(request, response) { 
    // this is the ajax call, which is running successfully 
    var msg = Assessments_JqueryAutoComplete.AutoComplete(request.term).value; //(ajaxpro functions) 
    response(msg); 
    } 

}); 

?

यदि नहीं, तो मैं सुझाव दूंगा कि यदि आप संभव हो तो प्रतिक्रिया ऑब्जेक्ट का विश्लेषण करने के लिए console.log (msg) का उपयोग करें।

1

बस सुनिश्चित करें कि आपका AJAX कॉल मान्य स्ट्रिंग प्रारूप लौटा रहा है जैसे dummy example। इसे एक चर में स्टोर करें। फिर source संपत्ति इस तरह परिभाषित करने के लिए इसका इस्तेमाल करते हैं:

var availableValues = ["List 1","List 2","List 3","List 4"]; 
// var msg = Assessments_JqueryAutoComplete.AutoComplete(request.term).value; 
$("#txtEmailList").autocomplete({ 
    source: availableValues 
}); 
संबंधित मुद्दे