2個選項是:在aspx文件中使用參數或通過代碼隱藏進行綁定。哪個更好?爲什麼?通過代碼隱藏或標記DataSource填充gridview?
回答
我推薦使用ObjectDataSource,因爲它導致更清潔的架構,並且更容易處理事件,例如排序和分頁。否則,你的控制必須特別處理這樣的事件,我發現這是一個痛苦的脖子。我總是創建一個業務層,並讓我的Get()方法使用如下所示的簽名。我對這種設計的模型來自這本書,我認爲這是一個偉大的Web窗體資源:
http://www.amazon.com/ASP-NET-2-0-Website-Programming-Programmer/dp/0764584642
在App_Code /業務層:
public class ProductRepository
{
public List<Product> GetAll(/* params here */ string sortOrder, string orderBy, int startRowIndex, int maximumRows)
{
// call data access tier for Product entities
}
public int GetAllCount(/* params here */)
{
// call data access tier for count of Product entities
}
}
在Web窗體中:
<asp:ObjectDataSource ID="objProduct" runat="server"
TypeName="MyNameSpace.BLL.ProductRepository"
SelectMethod="GetAll"
EnablePaging="true"
SortParameterName="sortOrder"
SelectCountMethod="GetAllCount" />
代碼少的原則。儘可能在aspx文件中放置。
如何讓邏輯遠離UI?雖然MVC似乎正在這樣... – IrishChieftain
您是否寧願Aspx知道太多東西降低了,或者UI背後的代碼控制太多......您無法不加區分地應用它,但我認爲拖拽用戶界面中的內容往往比拖拽它們進入代碼隱藏更好。 –
我都是在用戶界面中進行聲明式抽象,但是像Razor這樣的東西真的讓我錯誤,因爲邏輯在UI層中沒有地位。 – IrishChieftain
- 1. 通過代碼隱藏填充reportviewer
- 2. 通過代碼填充ITemplate
- 3. GridView通過代碼隱藏更新存儲過程
- 4. Asp.net GridView使用LINQ填充數據DataSource
- 5. 如何使用多個DataSource填充GridView?
- 6. 通過代碼隱藏來改變填充WPF矩形的最佳方法
- 7. 如何通過代碼隱藏爲gridview編輯編輯按鈕?
- 8. 與代碼隱藏相比,在標記中聲明DataSource時的區別?
- 9. 通過openCSV填充Javabean - 代碼解釋
- 10. 通過Javascript發送Command.Value代碼隱藏
- 11. 通過代碼隱藏表格列
- 12. 交互通過代碼隱藏
- 13. 動態ASPX通過代碼隱藏
- 14. databind gridview填充在代碼後面
- 15. 用aspx填充gridview的C#代碼
- 16. 從DataSource填充DropDownList
- 17. 如何通過代碼隱藏從LinqDataSource獲取記錄值
- 18. android通過gridview填充所有屏幕
- 19. 填充gridview的細胞通過細胞
- 20. GridView和DetailsView代碼隱藏更新DetailsView
- 21. asp.net的代碼隱藏更新gridview
- 22. 使用h1標籤或URL填充隱藏字段
- 23. 是否可以通過代碼刪除(或隱藏)按鈕?
- 24. 如何通過代碼隱藏在傳單中添加多個標記
- 25. 如何構建ListView並從代碼隱藏中填充它
- 26. 在編輯列表視圖時填充DDL代碼隱藏
- 27. 如何從代碼隱藏中填充Repeater ItemTemplate?
- 28. Stored Proceedure或GridView DataSource
- 29. Django通過填充在隱藏輸入中傳遞對象ID
- 30. 在xml中隱藏標題或通過java代碼有什麼區別?
如何使用DataSource從對象而不是數據庫中讀取數據? –
我假設你的意思是「ObjectDataSource」。當我嘲笑事物並且還沒有數據庫時,我有時會這樣做。你所做的就是對對象中的列表進行硬編碼。在上面的例子中,你會添加一個成員變量「private List allProducts = null;」。在構造函數(或工廠方法)中,您將使用產品填充「allProducts」,例如「allProducts.Add(new Product {});」 –
Brett