问题描述
publicstaticintLoadComboFromDB(OleDbConnectionconnection,objectctlDropDownList,intnSGroupID,intnRefType,stringnCurValue){DropDownListddl=(DropDownList)ctlDropDownList;ddl.Items.Clear();stringlpszRefID=(nRefType==(int)RefType.FRT_NormalStatus)?"StatusID":"SysResID";stringstrSQL=string.Format("select{0},statusNamefromSysStatusDictwhereSGroupID={1}andDispOrder>0orderbyDispOrder",lpszRefID,nSGroupID);using(DataSetds=DataAccess.ExecuteDataset(strSQL,connection))//读出数据{intnDx=0;for(inti=0;i<ds.Tables[0].Rows.Count;i++){if(ds.Tables[0].Rows[i].ItemArray[0].ToString()==nCurValue){nDx=i;break;}}ddl.DataSource=ds;ddl.DataTextField="statusName";ddl.DataValueField=lpszRefID;try{ddl.SelectedIndex=nDx;}catch{}returnds.Tables[0].Rows.Count;}}我要使下拉框的初始值为空应该怎么做?思路2种:11。在绑定前给ds(也就是数据源)前面加一条空记录,然后在绑定?2.不用绑定直接用它的一些属性来赋值。也就是像.SelectedItem之类的我只知道思路,求大家把完整的程序帮我写下好吗?2种我都要
解决方案
解决方案二:
我一般不绑定for(inti=0;i<ds.Tables[0].Rows.Count;i++){ListItemitem=newListItem();item.Text=ds.Tables[0].Rows["statusName"];item.Value=i;ddl.Items.Add(item);}//添加一个空项ListItemit=newListItem();it.Text="空";it.Value=ddl.Items.Count;ddl.Items.Add(it);
解决方案三:
我要2中思路啊
解决方案四:
ListItemit=newListItem();it.Text="空";it.Value="-1";ddl.Items.Insert(0,it)
解决方案五:
ddl.DataSource=ds;ddl.DataTextField="statusName";ddl.DataValueField=lpszRefID;ddl.DataBind();ListItemit=newListItem();it.Text="";it.Value="-1";ddl.Items.Insert(0,it)
解决方案六:
ddl.Items.Insert(0,newListItem());
解决方案七:
ListItemitem=newListItem();item.Text=ds.Tables[0].Rows["statusName"];item.Value=i;ddl.Items.Add(item);}报错:无法将int转换为string
解决方案八:
添加一个“空项”就可以了,就像我们注册的时候通常碰到的--请选择--
解决方案九:
用tostring转换一下即可
解决方案十:
发表于:2007-10-1617:28:181楼得分:0我一般不绑定C#codefor(inti=0;i<ds.Tables[0].Rows.Count;i++){ListItemitem=newListItem();item.Text=ds.Tables[0].Rows["statusName"];item.Value=i;ddl.Items.Add(item);}//添加一个空项ListItemit=newListItem();it.Text="空";it.Value=ddl.Items.Count;ddl.Items.Add(it);报错啊类型转换出了问题帮我看看
解决方案十一:
都不行啊还是下拉框的初始值不为空
解决方案十二:
for(inti=0;i<ds.Tables[0].Rows.Count;i++){ListItemitem=newListItem();item.Text=ds.Tables[0].Rows["statusName"].ToString();item.Value=i.ToString();ddl.Items.Add(item);}//添加一个空项ListItemit=newListItem();it.Text="空";it.Value=ddl.Items.Count.ToString();ddl.Items.Add(it);
解决方案十三:
object类型当然不能赋值给string
解决方案十四:
for(inti=0;i<ds.Tables[0].Rows.Count;i++){ListItemitem=newListItem();item.Text=ds.Tables[0].Rows[i]["statusName"].ToString();item.Value=i.ToString();ddl.Items.Add(item);}//添加一个空项ListItemit=newListItem();it.Text="空";it.Value=ddl.Items.Count.ToString();ddl.Items.Add(it);
解决方案十五:
this.ddl.Items.Insert(0,newListItem("--请选择--",""));
解决方案:
简单啊comboBox1.SelectedValue=DBNull.Value;
就可以拉
解决方案:
object类型不能赋值给string
解决方案:
我想你只能去考虑第一种思路了,因为对于已经设置了DATASOURCE的COMBOX控件的ITEMS项目是不允许编辑的,因此诸如ITEMS.ADD()以及ITEMS.INSERT()等方法是不能够解决你的问题的。而且如果FORM控件的话,好像也没有LISTITEM类。