1
2つのユーザーコントロールをaspxページで同時にレンダリングすることは可能ですか?データロードが非同期として定義されているにもかかわらず、あるユーザーコントロールがデータのロードを待機している間に他のユーザーコントロールがレンダリングされないようです。レンダリングASP.Netユーザーコントロールが平行
私はCustomGridView
コントロールを持っています。これはSystem.Web.UI.WebControls.GridView
から継承されています。私のaspxページでは、レンダリングされるいくつかの CustomGridViewsがあります。そしてまた私のaspxページではページは、ASP.NETのWebフォームのレンダリングは、コントロールがレンダリングとの順序に依存する可能性があるとして
public class CustomGridView : GridView{
//...
protected override void OnPagePreLoad(object sender, EventArgs e)
{
Page.RegisterAsyncTask(new PageAsyncTask(GetDataAsync));
base.OnPagePreLoad(sender, e);
}
private async Task GetDataAsync(){
var data=await _service.GetDataAsync();
this.DataSource=data;
this.DataBind();
}
//...
}
問題はdatasource.databind()が各ユーザーコントロール自体から呼び出されるため、すべてのデータソースが並列に読み込まれないように見えます。そして、データが読み込まれるのを待ちます。 –
'GridView'を拡張しているのであれば、カストムコントロールではありませんか?ユーザーコントロールは 'UserControl'を拡張します。 –
なぜコントロールコードの代わりにページコードのデータをバインドしないのですか? –