另一个方法中这样声明的
DropDownList ddl = new DropDownList();
ddl.ID = "ddl_" + pro.Property_ID.ToString();
ddl.DataTextField = "PV_Value";
ddl.DataValueField = "PropertyValues_ID";
ddl.Width = Unit.Pixel(400);首次加载各DropDownList均没问题,联动效果的时候,重新绑定却出问题
”DropDownList有一个无效的SelectedValue 因为它不在项目列表中“
奇怪的是,我已经做了ddl.Items.Clear();和重设SelectedIndex 处理,ddl.DataBind();的时候依然出这个错误。
请各位帮忙出主意,加班中,很急
private int BindDLL(Property pro,DropDownList ddl,bool isFahter,int ppr_id,int fatherId)
{
ddl.Items.Clear();
if(ddl.Items.Count > 0)
ddl.SelectedIndex = 0;
else
ddl.SelectedIndex = -1;
if(ppr_id!=0)
ddl.DataSource = BPropertyValues.GetListByRelation(ppr_id, fatherId);
else
ddl.DataSource = BPropertyValues.GetExtendValues(pro.Property_ID, 1);
if(isFahter)
{
ddl.SelectedIndexChanged += new EventHandler(ddlInput_SelectedIndexChanged);
ddl.AutoPostBack = true;
}
ddl.DataBind();//这里第一次绑定没错,第二次绑定出错 if(pro.Pro_IsMust == 0)
{
ListItem item = new ListItem();
item.Text = "--请选择--";
item.Value = "0";
ddl.Items.Insert(0, item);
ddl.SelectedIndex = 0;
}
else if(ddl.Items.Count>0)
ddl.SelectedIndex = 0;
if(PageType == "update")
{
if(TM.TP_List.ContainsKey(pro.Property_ID.ToString()))
{
ListItem item = new ListItem(TM.TP_List[pro.Property_ID.ToString()].TP_Value, TM.TP_List[pro.Property_ID.ToString()].PropertyValues_ID.ToString());
if(pro.Pro_IsMust == 0)
{
if(!ddl.Items.Contains(item))
{
ddl.Items.Insert(1, item);
ddl.SelectedIndex = 1;
}
else
ddl.SelectedValue = item.Value;
}
else
{
if(!ddl.Items.Contains(item))
{
ddl.Items.Insert(0, item);
ddl.SelectedIndex = 0;
}
else
ddl.SelectedValue = item.Value;
}
}
}
int selectValue = 0;
if(ddl.Items.Count>0)
selectValue = Convert.ToInt32(ddl.SelectedValue);
return selectValue;
}
DropDownList ddl = new DropDownList();
ddl.ID = "ddl_" + pro.Property_ID.ToString();
ddl.DataTextField = "PV_Value";
ddl.DataValueField = "PropertyValues_ID";
ddl.Width = Unit.Pixel(400);首次加载各DropDownList均没问题,联动效果的时候,重新绑定却出问题
”DropDownList有一个无效的SelectedValue 因为它不在项目列表中“
奇怪的是,我已经做了ddl.Items.Clear();和重设SelectedIndex 处理,ddl.DataBind();的时候依然出这个错误。
请各位帮忙出主意,加班中,很急
private int BindDLL(Property pro,DropDownList ddl,bool isFahter,int ppr_id,int fatherId)
{
ddl.Items.Clear();
if(ddl.Items.Count > 0)
ddl.SelectedIndex = 0;
else
ddl.SelectedIndex = -1;
if(ppr_id!=0)
ddl.DataSource = BPropertyValues.GetListByRelation(ppr_id, fatherId);
else
ddl.DataSource = BPropertyValues.GetExtendValues(pro.Property_ID, 1);
if(isFahter)
{
ddl.SelectedIndexChanged += new EventHandler(ddlInput_SelectedIndexChanged);
ddl.AutoPostBack = true;
}
ddl.DataBind();//这里第一次绑定没错,第二次绑定出错 if(pro.Pro_IsMust == 0)
{
ListItem item = new ListItem();
item.Text = "--请选择--";
item.Value = "0";
ddl.Items.Insert(0, item);
ddl.SelectedIndex = 0;
}
else if(ddl.Items.Count>0)
ddl.SelectedIndex = 0;
if(PageType == "update")
{
if(TM.TP_List.ContainsKey(pro.Property_ID.ToString()))
{
ListItem item = new ListItem(TM.TP_List[pro.Property_ID.ToString()].TP_Value, TM.TP_List[pro.Property_ID.ToString()].PropertyValues_ID.ToString());
if(pro.Pro_IsMust == 0)
{
if(!ddl.Items.Contains(item))
{
ddl.Items.Insert(1, item);
ddl.SelectedIndex = 1;
}
else
ddl.SelectedValue = item.Value;
}
else
{
if(!ddl.Items.Contains(item))
{
ddl.Items.Insert(0, item);
ddl.SelectedIndex = 0;
}
else
ddl.SelectedValue = item.Value;
}
}
}
int selectValue = 0;
if(ddl.Items.Count>0)
selectValue = Convert.ToInt32(ddl.SelectedValue);
return selectValue;
}
解决方案 »
- for循环的代码 我的有问题 麻烦高手看看
- 多条件查询
- C# 实现文件管理 输入信息界面如何添加附件,以便查询时查看
- 高手求救:在VS2005里面的ASP。NET如何使用MediaPlay?
- 求助两个或多个DropDownList联动
- 哪位大侠搞定大文件上传并带有进度条的东东呀?共享一下。
- ServerVersion = “SqlDataAdapter.SelectCommand.Connection.ServerVersion”引发了“Syste
- ASPxDateEdit赋值问题
- asp.net 2.0下ashx+ajax+jquery数据获取问题
- 图片上加的文字不能显示特殊字体
- asp.net什么时候才会用到线程?
- [散分加学习]JS鼠标事件大全
1,清空ITEMS
2,直接进行 datasource=“新的数据源” 你自己查询出来的
3,ddl1,databind();
然后判断需要选择的selectedvalue等于你查找的数据源就哦了
ddl.SelectedIndex = 0;
else
ddl.SelectedIndex = -1;
改为==>if(ddl.Items.Count > 0)
ddl.SelectedIndex = 0;
如果没有数据,没有默认提示无效 SelectedValue
现在是使用了items.clear(),更改selectedIndex,甚至设定selectedValue为空“”,都没用。每个dropdownlist都调用该方法绑定数据,首次加载没问题,但是级联时却出现这个错误。绑定数据源的数据是有的。三条
有的话,问题大至出在这里。
其次,数据绑定在DropDownList上的时候,即使外键列为空,代码里该属性默认也是0,绑定是不管是否数据存在问题,只管相应的text和value对应上即可
1,清空ITEMS
2,直接进行 datasource=“新的数据源” 你自己查询出来的
3,ddl1,databind();
然后判断需要选择的selectedvalue等于你查找的数据源就哦了
ddl_title.Items.Clear();
Titles tl = new Titles();
ddl_title.DataSource = tl.GetAllTitle().Tables[0].DefaultView;
ddl_title.DataTextField = "titlecontent";
ddl_title.DataValueField = "titleid";
ddl_title.DataBind();
ddl_title.Items.Insert(0,"Please Choose Title");
ddl_title.Items.Clear()
ddl_title.Text = Nothing
ddl_title.DataBind()