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