簡単な質問ですね。なぜDataBind()メソッドが必要ですか?
私は、ASP.NETコントロールをプログラムでデータバインドするときに、長い間、(おそらく)共通のパターンに盲目的に従ってきました。つまり:私は、DataSourceIDプロパティを経由してデータソース制御にバインドするために私のGridViewを設定した場合
gridView1.DataSource = someList;
gridView1.DataBind();
はしかし、DataBindを()の呼び出しは不要です。すなわち:
gridView1.DataSourceID = LinqDataSource1;
で十分です。あなたはASPXマークアップでDataSourceプロパティを設定しようと
さらに、次のように迎えています
あなたは宣言DataSourceプロパティを設定することはできません。
これらは関連していると思われますが、私はまだDataBind()が必要な理由については困惑しています。 DataSourceとDataSourceIDの違いは二次的です - 私はそこで起こっている魔法を理解することができます。実際の質問はです。DataSourceのプロパティセッターがデータバインディングを自動的に引き起こさないのはなぜですか? DataSourceを設定してバインドしないシナリオはありますか?
後でメモリ内のデータを保つのに短い時間の原因とどのように結合説明できますか?私はシンプルなコレクションのメモリ(上記のようにsomeListはList
ソースとしてdatareaderを使用することを考えてください。すぐにバインドすると、リーダーを繰り返してその内容を記憶に残します。ページのライフサイクルの後半を待っている場合は、短い時間でハングアップします。 –
説明をありがとう、しかし、私はどのようにこれが 'あなたがその接続をアクティブにしている時間を減らすのですか?接続は、OnDataBindingイベントからExecuteSelect()が呼び出されたときにのみ開かれます。 ExecuteSelect()が終了すると、 'dbConnection.Close();'が呼び出され、接続はもはやアクティブではありません。何か不足していますか? – BornToCode