Repeater で OnItemDataBound を実際に使用するのは何ですか?
7 に答える
「このイベントは、データ項目がクライアントに表示される前に、データ項目にアクセスする最後の機会を提供します。このイベントが発生した後、データ項目は無効になり、使用できなくなります。」
~ http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datagrid.onitemdatabound.aspx
1 つの用途として、リピーターにバインドされた時点でバインドされたデータ項目からのみ入手可能な情報に基づく動的なコントロールの生成があります。
リピーターの各アイテムのデータを少しマッサージする必要があるときに使用しました。
テンプレート内の個々の項目を動的なコントロールまたは最初にリピーターにバインドした結果セットの一部ではなかったデータでカスタマイズする場合に必要です。
このように考えてください。アイテムが作成されると、その特定のアイテムに対してすべての OnDataBinding イベントが発生します。多くの OnDataBinding イベントが呼び出される可能性があるため、1 つの項目を構築する多くのものが存在する可能性があります。すべてが完了すると、これがトリガーされるイベントであるため、最終的な「タッチ」を適用でき、この時点ですべての OnDataBinding イベントが完了します。
例えば。アイテムは 10 フィールドのデータを埋め、バインドされたときにあらゆる種類のことを行います。すべてのデータがいっぱいになったら、作成されたデータの特定の部分を確認し、行全体の色やアイテム全体のデータに基づくアイコンなど、アイテム全体に何かを設定します。
データバインディング構文を読んだりデバッグしたりするのは難しいと思います。OnItemDataBoundで、データバインディング式をマークアップに入れることではできなかったことは今までになかったと思いますが、後で変更したい場合は、個人的に設定する方がはるかに簡単です。 OnItemDataBoundのブレークポイントを指定し、イミディエイトウィンドウを使用して、レンダリングしたいものを特定します。私はまた、コードとマークアップを分離する必要があるという、明らかに衰退している(Rubyなど)という口述にも固執しています。