0

デザイナーが顧客向けのカスタム asp.net Web フォームを作成する方法を作成しようとしています。基本的な考え方は、保存できるフィールドの一般的なセットがあり、各顧客がそれらのフィールドのサブセットを使用し、各顧客が同様の概念に対して独自の名前を持っている可能性があるということです (つまり、ある顧客は「患者」を使用し、別の顧客は「顧客」を使用する場合があります)。 ')。顧客のコンテキストにとどまることは、設計者が顧客のニーズを満たす正しいフォームを構築するのに役立ちます。

これを行うには、できる限りデザインの経験を積む必要があります。asp:TextBox などの基本コントロールから派生した一連のカスタム コントロールがあり、インターフェイスを実装して、コントロールを反復処理し、データ ストアから値を挿入したり、値をフェッチして保持したりできるようにします (完了)。これらのコントロールはすべて、レコード オブジェクトのデータ ポイントにバインドする必要があります。バインディングを許可するようにメタデータ システムをセットアップしましたが、使用可能なフィールドのリストを UITypeEditor に取得する際に問題が発生しました。つまり、(設計時に) フォームに顧客コンテキストを設定し、各コントロールのカスタム プロパティ エディターでその値にアクセスして使用する方法 (設計時にも) を理解していません。これは可能ですか?私はこの問題を間違った方法で見ていますか? フォームには常に 1 つだけの顧客コンテキストがあります。

2 番目の質問として、これらのエディターをデバッグするにはどうすればよいですか? エディターには Web コンテキストが期待されていますが、asp.net プロパティ グリッドはありません。あったとしても、エディターはブラウザーで実行されない winforms コンポーネントです。

問題を単純化する場合は、現在持っているコードを含めることができますが、単純化された例でさえ、半ダースのクラスです。

4

1 に答える 1

0

これらの問題を解決し、一般的な解決策が将来誰にとっても役立つ場合に備えて、ここに投稿しました。

別の方法でこの問題を少し回避することができました。親 Page はそのコントロールを繰り返し処理し、特定のインターフェイスを実装するすべてのコントロールに CustomerId を設定します。

デバッグに関しては。いくつかのリファクタリングにより、実装の Web フォーム固有の部分をテスト用に簡単に交換できる場所にたどり着きました。

于 2012-12-01T18:55:02.063 に答える