2011-10-12 61 views
0

我在我的ASP.NET網站中使用自動完成jQuery插件,我似乎無法追查我在這個新網站上做錯了什麼。請注意,我有100%的工作在我的另一個ASP.NET站點上,並且已經通過一個細緻的梳子來比較這個新項目的設置,並且找不到它們的區別。jQuery自動完成工作,但不顯示文本

發生了什麼事情是所有東西都連接起來了,Http Handler正在將數據序列化爲json,並將其寫入reposnse而沒有錯誤。該框甚至表現得像它正在工作,越來越小,因爲我輸入更多的字母,但沒有文本顯示。我會發誓這是一個CSS問題,但通過開發人員工具欄查看源代碼,我發現呈現的列表不完整。以下是我從我的網站,做看到工作:

<li jQuery16208584441255029163="12"/> 

以下是我使用的確切相同的插件,CSS,引用,代碼

我的工作地點等:見
<li class="ui-menu-item" role="menuitem" jQuery16205959569234760148="7"> 
    <a tabIndex="-1" class="ui-corner-all" jQuery16205959569234760148="33"> 
     Text - John Smith 

我在這裏錯過了什麼?我調試的所有代碼都能正常工作,並且在將結果作爲json寫入HttpResponse時存在結果。有任何想法嗎?謝謝!

+0

你可以粘貼HttpResponse(即JSON)和JavaScript代碼來呈現它嗎? – ManseUK

+0

我可以從調試中提取出json - >我怎樣才能得到.js並試試你在說什麼? JSONLint驗證它是正確的。 – atconway

+0

必須有一些JavaScript代碼來創建自動完成 - 即您應該發佈的代碼。 – ManseUK

回答

2

Arrrghhh。在經歷了很多挫折後,我追蹤了這個問題。我使用LINQ查詢來填充以下(3)的一個簡單DTO類:

ID,標籤,值

...好我我曾見過一個例子仿照類,但不要通常不會在所有小寫值中創建屬性,所以今天早上我將它們更改爲:

ID,標籤,值。

那麼無辜的變化是罪魁禍首。這些屬性被寫入json的響應中,並由名爲jquery.ui.autocomplete.js的jQuery .js文件解析。它包含以下代碼(我搜索下來的事實後解釋這個帖子詳細,因爲通常我不關心了jQuery文件的內部運行;我只關心他們的工作!):

return $.map(items, function(item) { 
     if (typeof item === "string") { 
      return { 
       label: item, 
       value: item 
      }; 
     } 

是的,區分大小寫的值沒有從jSON中拾取我的大寫名稱,並且沒有在框中呈現任何內容。