データソースがDataReaderに設定されているページにコントロールがある場合、そのコントロールはデータソースが設定されたときにリーダーを消費しますか、それともDatabindが実行されるまでデータリーダーは存在し続けますか?
Databindが実行されると、実際には何が起こりますか?
データソースがDataReaderに設定されているページにコントロールがある場合、そのコントロールはデータソースが設定されたときにリーダーを消費しますか、それともDatabindが実行されるまでデータリーダーは存在し続けますか?
Databindが実行されると、実際には何が起こりますか?
DataBindの実行時に消費する必要があります。
コントロールに応じて、DataBind()はデータをコントロールにバインドします。これは、データソースを反復処理し、必要なHTMLおよびその他のコントロールを作成することによって行われます。
DropDownListの場合、DataBind()は、DataSetの各レコードまたはArrayListの各要素のListItemを作成します。
その後、RenderメソッドがDropDownListで呼び出され、SelectタグのHtmlが返されます。また、Selectタグ内にOptionタグを返すことにより、各ListItemのHtmlを作成します。
ラベルの場合、DataBind()はテキストをデータベースから取得した値に設定します(たとえば)。
特定のコントロールに対してDataBind()を呼び出さない場合は、データソースがコントロールに対して設定されていることを確認して、Page.DataBind()を呼び出すこともできます。これにより、ページ内のコントロールが調べられ、各コントロールのすべてのDataBindが呼び出されます。
データバインド中にデータリーダーでコントロールは何をしていますか? それを内部構造にコピーし、データリーダーを破棄してからレンダリングしますか?
ページに 10 個のコントロールがあり、それぞれのデータソースを page.databind と呼ばれる別のデータリーダーに設定した場合、データリーダーは (作成時点から page.databind が処理を完了する時点まで) ずっと存在しますか? ?