在一個vb.net asp.net webforms項目我需要加載一個記錄列表到一個gridview &一旦用戶點擊一行需要展開一個面板在行下方顯示記錄的詳細信息。我只需要在選擇記錄時加載記錄的詳細信息。達到此目的的最佳方法是什麼?我可以在gridview中使用jQuery可摺疊面板插件嗎?只有在選擇了行時才能加載數據?或者我應該使用ajax CollapsiblePanel?ASP.NET GridView與延遲加載可摺疊面板數據
3
A
回答
1
您的問題缺乏細節,答案取決於每行可能顯示的「細節」的構成。
但是,我會做以下事情,利用jQuery與asp.net ajax處理程序抓取數據(按需)並將其注入到新的gridview行。
一旦點擊事件,導致您的行進入「選定」模式,我會引發jquery函數。
這個jquery函數會觸發一個到GrabRowDetails.aspx的ajax命中。
GrabRowDetails.aspx將在查詢字符串中輸入。
基於此輸入,它將查詢數據庫。
最終,GrowRowDetails.aspx必須將相關數據打包到JSON中,然後將其呈現回客戶端。
Response.ContentType = "application/json"
Response.Write(SB.ToString()) 'emits the JSON
最後,您的ajax-成功處理程序將負責創建新的表格行並將相關數據干擾到新行中。
它將如何知道將新行放在哪裏?上面提到的點擊處理程序應該傳遞引發點擊事件的控件引用。
使用此參考,您可以使用nearest函數。 this.nearest("tr").after(..new_row_with_max_colspan_cell..)
。
after函數將在所選元素之後插入一個元素。所以,你只需要插入一個帶有最大colspan的單個TD的新TR。然後,您可以在該區域內工作。
當談到做這樣的事情時,我使用原生jquery而不是ASP.NET控件獲得了更好的運氣。
注
- 一個.ashx的比對處理AJAX請求的.aspx更好的性能,但我已經運行到與HTTP處理程序調試的一些問題。所以,我使用了全面的.aspx。如果速度是一個問題,我肯定會使用ashx。
- 您的jquery函數還應該刪除以前打開的任何細節行。這可以通過在詳細信息行上設置特定的css類(如
details
),然後使用remove函數來清除任何持續的詳細信息行來完成。
1
如果你想要使用gridview,那麼你需要使用單個項目模板來綁定所有的字段,你可以分配適當的類名到你想要摺疊和展開的任何字段。那麼您可以使用slideToggle函數來顯示/隱藏包含所選記錄的詳細信息的下一個元素。請檢查下面的例子。
<asp:GridView ID="GridView1"
runat="server" AutoGenerateColumns="False" dataSourceID="ObjectDataSource1">
<Columns>
<asp:TemplateField HeaderText="columname" >
<ItemTemplate>
<asp:Label ID="Label1" runat="server" cssclass="expand"
Text='<%# Bind("fieldname") %>'></asp:Label>
<div class="details">
your detail binding
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
--------------- jQuery來摺疊/展開---------------
$(".expand").click(function() {
if ($(this).attr("class") == "collapse") {
$(this).attr("class", "expand")
}
else {
$(this).attr("class", "collapse")
}
$(this).next(".details").slideToggle();
})
$(".collapse").click(function() {
if ($(this).attr("class") == "collapse") {
$(this).attr("class", "expand")
}
else {
$(this).attr("class", "collapse")
}
$(this).next(".details").slideToggle()
})
相關問題
- 1. GridView中的可摺疊面板
- 2. 垂直可摺疊面板 - 顯示已加載摺疊
- 3. C#ASP.NET可摺疊Gridview
- 4. ASP.net中的可摺疊面板
- 5. AJAX可摺疊面板HTML
- 6. Javascript摺疊延遲功能
- 7. jQuery的可摺疊面板
- 8. jQuery:加載時滑動面板延遲
- 9. ASP.NET網站:頁面加載延遲
- 10. 與延遲加載
- 11. 可摺疊面板/ primefaces
- 12. Flex可摺疊面板?
- 13. CSS3可摺疊面板
- 14. Offcent Bootstrap可摺疊面板
- 15. JQuery可摺疊面板
- 16. 可摺疊設置面板
- 17. 模板加載延遲與Ember.js
- 18. 可摺疊的GridView細胞ASP.net
- 19. 可摺疊面板內的Spry可摺疊面板,不一致的錯誤
- 20. 如何使用AngularJS懶加載內容的可摺疊面板
- 21. 延遲加載Silverlight頁面
- 22. jquery頁面加載延遲
- 23. PJAX延遲頁面加載
- 24. 延遲加載jsp頁面?
- 25. .Net可摺疊面板或可摺疊鏈接控件
- 26. 使用asp.net更新面板時可以延遲內容加載嗎
- 27. 延遲加載延遲
- 28. Gridview,延遲加載,JSON解析
- 29. 在gridview中的延遲加載
- 30. 摺疊側面板