读书人

运行到DropDownList处有有关问题

发布时间: 2012-01-02 22:40:04 作者: rapoo

运行到DropDownList处有问题
编辑页面的所有文本框和时间控件还有下拉列表都放在一个DetailView中,当进入编辑页面时,在.cs后台代码页中有如下代码 DropDownList ddl = (DropDownList)DetailsViewFile.Rows[0].FindControl( "dropCategory ");
ddl.DataSource = MediaCategories.GetInfoByCategoryID(category.ParentID);
ddl.DataBind();
ddl.SelectedValue = file.CategoryID.ToString();
对第一行代码提示 "索引超出范围。必须为非负值并小于集合大小。\r\n参数名: index ",这是怎么回事,源代码部分
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int id = 0, cid = 0;
try
{
id = int.Parse(Request[ "id "]);//用来判断它是添加还是修改
ViewState.Add( "id ", id);
cid = int.Parse(Request[ "cid "]);//上个list文件传过来的 categoryID,用来确定添加的文件属于哪个类别
ViewState.Add( "cid ", cid);
}
catch
{
this.GoError( "页面错误 ", "无效的参数或链接错误。 ");
}
if (id > 0) //修改
{
DetailsViewFile.DataSource = MediaFile.GetListByCategoryID(id);
DetailsViewFile.DataBind();
MediaFile file = new MediaFile(id);
MediaCategories category = new MediaCategories(file.CategoryID);
DropDownList ddl = (DropDownList)DetailsViewFile.Rows[0].FindControl( "dropCategory ");
ddl.DataSource = MediaCategories.GetInfoByCategoryID(category.ParentID);


ddl.DataBind();
ddl.SelectedValue = file.CategoryID.ToString();
ViewState.Add( "cid ",cid);
}
else //添加
{
MediaCategories category = new MediaCategories(cid);
DetailsViewFile.DefaultMode = DetailsViewMode.Insert;
DropDownList ddl = (DropDownList)DetailsViewFile.Rows[0].FindControl( "dropCategory ");
if (category.Level == 1)
{
ddl.DataSource = MediaCategories.GetInfoByCategoryID(cid);
ddl.DataBind();
}
else
{
ddl.DataSource = MediaCategories.GetInfoByCategoryID(category.ParentID);
ddl.DataBind();
ddl.SelectedValue = category.CategoryID.ToString();
}
}

}
}





[解决办法]
沙发,帮忙顶
[解决办法]
是不是FindControl( "dropCategory ")找不到,调试一下看看,说不写是null。

[解决办法]
DropDownList要指定显示的是数据源的那一列. DropDownList1.DataTextField= " "
[解决办法]
DropDownList ddl = (DropDownList)DetailsViewFile.Rows[0].FindControl( "dropCategory ");

> > >

DropDownList ddl = (DropDownList)DetailsViewFile.FindControl( "dropCategory ");

[解决办法]
晕。。。。问题解决了,来晚了一步。。。

读书人网 >asp.net

热点推荐