0

範囲外の例外を受け取らずに、asp.netライフサイクルメソッドのどこでこのオブジェクトを作成できますか。現在、値を含むリソースコレクションを実際に取得できるのは、webschedule情報のonreasourcefetchedメソッドだけです。しかし、webscheduleinfoが作成され、そのビューにユーザーが表示される前に、これを行う必要があります。

protected void Page_Init(object sender, EventArgs e)
        {
            ResourcesCollection resources = WebScheduleInfo1.VisibleResources;

            int count = resources.Count;
            Resource obje = (Resource)resources.GetItem(1);
            string name = obje.Name;
            resources.Clear();
            resources.Add(obje);
            this.WebScheduleInfo1.ActiveResourceName = name;
        }
4

1 に答える 1

2

リソースのカウントを取得していますが、カウントが0より大きいことを確認していません。

(Resource)resources.GetItem(1)リソースコレクションに少なくとも2つのアイテムが含まれていない限り、失敗します。

コレクションは0ベースなので、最初のアイテムが必要な場合は、次のようにします。

protected void Page_Init(object sender, EventArgs e)
{
    ResourcesCollection resources = WebScheduleInfo1.VisibleResources;

    int count = resources.Count;

    if( count > 0 )
    {
        Resource obje = (Resource)resources.GetItem(0);
        string name = obje.Name;
        resources.Clear();
        resources.Add(obje);
        this.WebScheduleInfo1.ActiveResourceName = name;
    }
}
于 2013-02-21T16:58:22.473 に答える