| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 664 人关注过本帖
标题:[求助]运行到DropDownList处有问题
只看楼主 加入收藏
hinroe
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-7-27
结帖率:100%
收藏
 问题点数:0 回复次数:4 
[求助]运行到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",这是怎么回事,其中HTML代码:

I52HhjkE.txt (956 Bytes) [求助]运行到DropDownList处有问题

请大家帮看看
搜索更多相关主题的帖子: DropDownList ddl 后台 运行 
2007-08-02 16:08
冰彩虹
Rank: 4
来 自:上海
等 级:贵宾
威 望:14
帖 子:806
专家分:44
注 册:2007-6-28
收藏
得分:0 
以下是引用hinroe在2007-8-2 16:08:46的发言:

DropDownList ddl = (DropDownList)DetailsViewFile.Rows[0].FindControl("dropCategory");
ddl.DataSource = MediaCategories.GetInfoByCategoryID(category.ParentID);
ddl.DataBind();
ddl.SelectedValue = file.CategoryID.ToString();

这段代码写哪儿在?


Flying without wings
2007-08-02 18:24
hinroe
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-7-27
收藏
得分:0 

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();
}
}

}
}
就这段代码,修改和添加是一个页面,所以进行了判断,页面加载时的时候,请您帮看看吧!先谢了!


祝编程快乐
2007-08-02 19:56
冰彩虹
Rank: 4
来 自:上海
等 级:贵宾
威 望:14
帖 子:806
专家分:44
注 册:2007-6-28
收藏
得分:0 
DetailsViewFile.Rows类别有很多种的哈,你要做判断的

而且如上编码感觉有点不规范

模板列的数据绑定常规做法是在DetailsViewFile的DataBound事件里

Flying without wings
2007-08-02 21:14
sean88
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-3-27
收藏
得分:0 
这样试试:

if(DetailsViewFile.Item.ItemType == ListItemType.Item ||DetailsViewFile.Item.ItemType == ListItemType.AlternatingItem)
{
DropDownList ddl = (DropDownList)DetailsViewFile.Rows[0].FindControl("dropCategory");
}

Knowledge is infinite.
2007-08-03 15:53
快速回复:[求助]运行到DropDownList处有问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026455 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved