0

私はここで明白な何かを見逃していると確信しています。

私は約20のデータバインドされたGridViewを持っており、それぞれがいくつかの共通の機能を共有しています。それらがすべて人のリストであり、すべてがホバーなどを備えた複雑なリンクボタンである約10列で始まるとしましょう。それらはすべて同じです。非常に幅の広いこれらのグリッドの残りの部分は、完全に異なる列で構成されています。複製されるのは(約100の)最初の10列だけです。

したがって、これらの10個のデータベース列を処理し、10個のEval()ステートメントなどを使用してそのhtmlをレンダリングするこのコードのチャンクがあります。これは各GridViewで同じコードであり、20回繰り返され、明らかにクールではありません。

列ヘッダーなどを実行するためにGridViewが必要なため、ユーザーコントロールやカスタムコントロールにそれをチャックすることはできません。もちろん、1つの列にユーザーコントロールを配置して、必要なすべてをそのようにレンダリングすることはできます( "eval"はそのようにネストされて機能します)が、複雑な列ヘッダーは表示されません。

それが問題です:テンプレート化されたGridViewコントロールから抜け出して、この繰り返されるコードを抽象化する方法はありますか?テキストを実際に繰り返す必要があるので、サーバーサイドインクルードまたは前処理されたものがほとんど必要ですが、asp.netがコンパイルを試みる前にそれを行う必要があります。カスタムコントロールを使用して、好きなHTMLをレンダリングできますが、HTMLではなくasp.netコードを生成する必要があるため、問題は解決しません。

4

1 に答える 1

0

Gridview からサブクラス化し、そこにある 10 個のグリッドビューすべてに共通の機能を実装してから、特定のグリッドビューに特定の機能を実装するサブクラスをさらに作成することはできませんか? 私は Pages でこれを成功させました (最も基本的なクラスには、すべてのサブクラスが継承する認証ロジックがありました)

于 2011-10-09T22:05:00.773 に答える