ASP.NETは宣言的なプログラミングに基づいていますか?
-
05-10-2019 - |
質問
最近、Gridviewのページングメカニズムの微妙な制限について気づきました。効率的なページ、ロード要求されたデータのページは、objectDataSourceのようなDataSourceコントロールを使用する場合にのみ可能です。これは宣言的なデータバインディングを意味し、データソースを使用していない場合、およびCodeBehindからのみ不可能です(MSDNは説明します ここ).
これは、ASP.NETがコードの背後にない宣言プログラミングに基づいていることを意味しますか?そして、デフォルトで宣言的なプログラミングを行う方が良いですか?
解決
ボックスから外れたウェブフォームは、宣言的なパスを操縦しようとします。それを回避して実際にコードを書くことができますが、WebFormsは非常に困難になります。
本当にコントロールしたい場合は、ASP.NET MVCフレームワークを調べる必要があります。
他のヒント
ASP.NETは両方を使用します:マークアップは宣言的であり、Code-Behindが不可欠です。
たとえば、より宣言的なコード - ユーザーコントロールの構築につながるスタイルを支持する必要があります。しかし、これらのコントロールは、動作方法を伝える命令的なコードがまだ必要です。
最終的には、SQL Rownumber関数を使用して自分のページングを行いました。
select * from
( select row_number() over (order by pk asc) as rownumber, * from ...)
where row_number between @a and @b
私はまったく宣言しませんでした - データソースにパラメーターに供給する代わりに(これを実行できることができます)、コードビハインドのすべてを管理し、DataSourceを手動で設定し、手作業でページャーを構築しました。
私がそのようにした理由は? 3.5のQueryStringfieldパラメーター処理のバグ.
おそらくrow_numberでオブジェクトデータソースを処理できたはずですが、あなたはしません 持ってる 気にしない場合は宣言的に何かをすること。