ASP.NET是基于声明性编程的吗?

时间:2010-09-24 20:53:40

标签: asp.net declarative-programming

最近我注意到GridView的分页机制有一个微妙的限制。只有使用像ObjectDataSource这样的DataSource控件才能实现高效的分页,只需加载请求的数据页面,这意味着在不使用数据源时只需从代码隐藏(MSDN描述它here)就不可能进行声明性数据绑定。

这是否意味着ASP.NET基于声明性编程而不是代码隐藏?默认情况下进行声明性编程会更好吗?

3 个答案:

答案 0 :(得分:1)

开箱即用WebForms试图引导您沿着声明路径前进。你可以绕过它并实际编写代码,但WebForms使它非常困难。

如果您真的想要控制,那么您应该查看ASP.NET MVC框架。

答案 1 :(得分:1)

ASP.Net使用两者:标记是声明性的,代码隐藏是必要的。

例如,您应该支持导致更多声明性代码的样式 - 构建用户控件。但是那些控件仍然需要命令性的代码来告诉他们如何表现。

答案 2 :(得分:0)

我最终使用SQL ROWNUMBER函数进行自己的分页。

select * from
( select row_number() over (order by pk asc) as rownumber, * from ...)
where row_number between @a and @b

我最终根本没有声明 - 而不是向数据源提供参数(可能做的事情)我只是在代码隐藏中管理所有内容,手动设置数据源,手动构建寻呼机。

我这样做的原因是什么? A bug in 3.5's querystringfield parameter handling

我可能已经使用row_number处理了对象数据源,但如果你不关心,你不会 以声明方式做任何事情。