运行到DropDownList处有问题

hinroe 2007-08-06 08:54:40
编辑页面的所有文本框和时间控件还有下拉列表都放在一个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();
}
}

}
}


...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun_Ke 2007-08-06
  • 打赏
  • 举报
回复
晕。。。。问题解决了,来晚了一步。。。
hinroe 2007-08-06
  • 打赏
  • 举报
回复
谢谢Jinglecat,嘿嘿,此处问题已经解决,困惑了好多天呢!给你加分去喽!
Jinglecat 2007-08-06
  • 打赏
  • 举报
回复
DropDownList ddl = (DropDownList)DetailsViewFile.Rows[0].FindControl("dropCategory");

>>>

DropDownList ddl = (DropDownList)DetailsViewFile.FindControl("dropCategory");
windily 2007-08-06
  • 打赏
  • 举报
回复
DropDownList要指定显示的是数据源的那一列. DropDownList1.DataTextField=""
bdbox@qq.com 2007-08-06
  • 打赏
  • 举报
回复
是不是FindControl("dropCategory")找不到,调试一下看看,说不写是null。
godgreat 2007-08-06
  • 打赏
  • 举报
回复
沙发,帮忙顶

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧