3

たとえば、フォーム レイアウトを定義する CSS ルールがいくつかあります。次のマークアップを使用します。

<div class="foo">
    <label class="bar req">Name<em>*</em></label>
    <span>
        <asp:TextBox runat="server"/>
            <label>First</label>
    </span>
    <span>
        <asp:TextBox runat="server"/>
            <label>Last</label>
    </span>
    <div class="clear"></div>
</div>

私の意見では、これは完全に優れたマークアップです。とにかくクリーンで正しいマークアップについて心配することになっているので、これらのルールに従うことは負担ではありません。次のようなコントロールを使用して、これらのルールを「強制」することが提案されています。

<x:FormField runat="server" Label="Name" Required="True">
    <x:TextBox runat="server" hint="First"/>
    <x:TextBox runat="server" hint="Last"/>
</x:FormField>

私の本能は、XHTML マークアップは敵ではなく味方だと教えてくれます。2 つの質問:

  1. マークアップを出力するためだけにこれらすべてのカスタム コントロールを作成することに抵抗するには、私は完全にベースから外れていますか?
  2. あなたが私に同意するなら、どのような理由を挙げますか?
4

9 に答える 9

17

そのマークアップが変更された場合 (たとえば、いくつかの素敵な jQueryUI 効果をボックスに追加したり、RequiredFieldValidator コントロールを追加したりしたい場合)、1 か所で変更を加えて完了できるため、コントロールの使用に投票します。ドライ。

于 2009-02-25T19:17:16.130 に答える
7

コントロールに対して:

  • 実績数値。ベースラインの XHTML ページと、同じマークアップを出力する 20 個のコントロールを含む同じページを測定します。これでお見積もりになります。
  • 追加費用。これらのコントロールの開発、テスト、および維持のコストを考慮する必要があります。

コントロールの場合:

  • 一貫性。必要なすべての要素を含む XHTML 構造を 1 か所で制御できるようになり、すべてのページで一貫性が保たれます。
  • 回帰。XHTML 構造が要求どおりであることを確認するために、適切な単体テストとシナリオ テストを行うことができます。
  • 再利用。将来、他のプロジェクトで同じコントロールを再利用できます。
于 2009-02-25T19:24:24.490 に答える
1

この正確な例での個人的な経験に基づいて、これについてあなたの側に立つことができます. 他のシナリオにはあまり当てはまらないかもしれませんが、ラベルとテキスト ボックスは分けておく必要があります。通常、プロジェクトの約 2/3 を達成し、他の人がそれを批判的にレビューし始めるまでは、すべて問題ありません。私の経験では、ユーザー/マネージャー/UI デザイナーは多くの場所で例外を望んでいました - 異なるスペース、ラベルとテキストボックスの間の余分なものなど。さまざまなシナリオをすべて処理するために、このような機能するコントロールを取得するまでには、フォームにラベルとテキスト ボックスを保持するだけの作業はおそらく少なくなります。

于 2009-02-25T19:20:12.880 に答える
0

CSS を使用してルック アンド フィールを「強制」すると、時間、サポート、メンテナンス、白髪のコストが大幅に削減されます。複合コントロール (2 番目のスニペットがどのように見えるか) について、本質的に「強制」するものはありません。ただし、カスタム コントロールには、さらに多くの作業が必要です。

結論: カスタム コントロールは、レイアウトではなく、再利用と再配布に関するものです。

于 2009-02-25T19:19:39.370 に答える
0

私は似たようなことをします。1 ページにこのような 30 ~ 40 個のコントロールがある場合は、これを極端に行ってください。ラベルやバリデーターなどを処理するコントロールがあると、作業がずっと楽になります。

また、フォームの値をオブジェクトにロードしたり、その逆を行ったりできる自動化されたフォーム ヘルパーもあります。

lefthand = righthandいたるところにコード。

于 2009-02-25T19:21:54.917 に答える