2011-11-14 87 views
1

在asp webform項目中,我調用了一個Web服務,該服務返回如下的結果集合。收集如何在webforms中使用jquery訪問.net集合的項目

僞碼返回

content (items are key value pair) 
ID, 001 
Title , My Book 
DateCreated , 10/10/2011 
Author, JSmith 

我想這樣做是對初始收益僅在數據中繼器顯示書的標題,然後一旦在細節用戶點擊顯示剩餘字段在窗體的單獨窗格div容器中。我在過去使用Silverlight和MVC中的泛型列表完成了這項工作,但是在這個項目中,我無法使用它們。

在進行一些研究時,我已經看到人們使用json進行類似的調用。不過,我用fiddler進行調試,我可以看到整個集合正在返回到用戶界面,所以看起來我應該能夠直接訪問集合,並將新的調用返回給服務器?在UI中,我沒有使用asp:net控件,而是使用標準html來呈現UI中的數據中的數據。

<div class="resultcontainer"> 
        <span class="labeltitle-small">Book Title</span><br /> 
        <%= BookResults[0].Title %> 
       </div> 

我能夠查詢和我在哪裏卡住但是返回的結果是顯示我將把作爲相關記錄輔助數據的最佳方法。

我真的很感謝有關如何(從客戶端)只顯示集合的視圖值的任何建議,然後一旦記錄被選中,其他值就顯示給用戶。

謝謝

+0

您必須撥打電話回到服務器。我的計算機上的Web瀏覽器中運行的代碼如何直接訪問您的服務器的數據結構? – Pointy

+0

@Pointy這是什麼讓我感到困惑。當結果返回並綁定到uI時,你是說只有在UI中顯式定義的屬性持續存在?內存集合中沒有推送到包含其他屬性的客戶端嗎?使用MVC和MVVM時,我可以綁定到視圖,然後根據需要訪問屬性。我猜這不是web案件的情況?根據您所說的話,一旦UI呈現出來,集合就會被銷燬,這樣就不會再從客戶端訪問這些值,而又不會返回服務器了。 – rlcrews

+0

不,所有獲取到客戶端的內容都包含在您明確控制的HTTP響應中。瀏覽器環境通過任何其他方式完全不知道服務器端狀態。如果頁面需要的東西在最初獲取時未包含,那麼客戶端必須向服務器發出另一個請求。 – Pointy

回答

2

好吧,也許有點明顯,但你有沒有考慮AJAX的一點點,使用jQuery.ajax?當用戶選擇一本特定的書籍時,你可以附加一個onclick甚至處理程序到div中,並將數據加載到頁面的相應部分。

您可以從控制器返回部分視圖。生成的HTML可以使用沿着$("#detailDiv").html(partialView)的行的東西顯示在div中。

+0

感謝Pieter,您的解決方案是準確的,但似乎也依賴於MVC模式方法。其中放置了創建控制器,視圖和數據上下文的依賴關係,以便將局部視圖推送到webform中,這更多的是我想爲這個項目做的事情。 – rlcrews

相關問題