访问资源集合项时的ArgumentOutOfRangeException

时间:2013-02-21 16:41:51

标签: asp.net exception infragistics outofrangeexception

在哪里可以在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;
        }

1 个答案:

答案 0 :(得分:2)

您获得了一些资源,但您没有检查以确保计数大于0。

除非资源集合中至少包含2个项目,否则

(Resource)resources.GetItem(1)将失败。

该集合基于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;
    }
}