1

データソースがDataReaderに設定されているページにコントロールがある場合、そのコントロールはデータソースが設定されたときにリーダーを消費しますか、それともDatabindが実行されるまでデータリーダーは存在し続けますか?

Databindが実行されると、実際には何が起こりますか?

4

3 に答える 3

1

DataBindの実行時に消費する必要があります。

于 2008-10-08T18:30:23.763 に答える
1

コントロールに応じて、DataBind()はデータをコントロールにバインドします。これは、データソースを反復処理し、必要なHTMLおよびその他のコントロールを作成することによって行われます。

DropDownListの場合、DataBind()は、DataSetの各レコードまたはArrayListの各要素のListItemを作成します。

その後、RenderメソッドがDropDownListで呼び出され、SelectタグのHtmlが返されます。また、Selectタグ内にOptionタグを返すことにより、各ListItemのHtmlを作成します。

ラベルの場合、DataBind()はテキストをデータベースから取得した値に設定します(たとえば)。

特定のコントロールに対してDataBind()を呼び出さない場合は、データソースがコントロールに対して設定されていることを確認して、Page.DataBind()を呼び出すこともできます。これにより、ページ内のコントロールが調べられ、各コントロールのすべてのDataBindが呼び出されます。

于 2008-10-08T18:32:18.203 に答える
0

データバインド中にデータリーダーでコントロールは何をしていますか? それを内部構造にコピーし、データリーダーを破棄してからレンダリングしますか?

ページに 10 個のコントロールがあり、それぞれのデータソースを page.databind と呼ばれる別のデータリーダーに設定した場合、データリーダーは (作成時点から page.databind が処理を完了する時点まで) ずっと存在しますか? ?

于 2008-10-08T18:55:25.367 に答える