高手帮忙,dropdownlist提示不能选择多项!在线急等,300分相送,不够再加

zhoushangzhi 2003-07-29 02:34:02
dropdownlist提示不能选择多项!
我的代码:Keyword n 为变量:
public void SetKeyWord()
{
txtChanceID.Text=KeyWord1;
txtChanceTitle.Text=KeyWord2;
txtClientName.Text=KeyWord3;
if (KeyWord4=="")
{
KeyWord4="-1";
}
if (KeyWord5=="")
{
KeyWord5="-1";
}
if (KeyWord6=="")
{
KeyWord6="-1";
}
//int ddChanceStatusIndex=ddChanceStatus.Items.IndexOf(ddChanceStatus.Items.FindByValue(KeyWord4));
ddChanceStatus.SelectedItem.Selected=false;
ddChanceStatus.Items.FindByValue(KeyWord4).Selected=true;
//ddChanceStatus.SelectedIndex=ddChanceStatusIndex;

ddChanceRate.SelectedItem.Selected=false;
ddChanceRate.Items.FindByValue(KeyWord5).Selected=true;

ddChancePrincal.SelectedItem.Selected=false;
ddChancePrincal.Items.FindByValue(KeyWord6).Selected=true;
}
...全文
60 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
goody9807 2003-07-29
  • 打赏
  • 举报
回复
up
icyer 2003-07-29
  • 打赏
  • 举报
回复
不要设置单个Item的Selected,而是设置DropDownList的SelectedIndex:
ddChanceStatus.SelectedIndex = ddChanceStatus.Items.IndexOf(ddChanceStatus.Items.FindByValue(KeyWord4));
yjtc 2003-07-29
  • 打赏
  • 举报
回复
很多教材中说,dropdownlist只能单选。

|================|
|先天性缺乏人民币|
|================|
zhoushangzhi 2003-07-29
  • 打赏
  • 举报
回复
没有Value重复的Item
Fortune2k1 2003-07-29
  • 打赏
  • 举报
回复
应该是这样:
你在生成的Item中有Value重复的Item.

仔细查看一下数据库的数据,虽然Text不同,但是Value相同.
cyp503 2003-07-29
  • 打赏
  • 举报
回复
函数SetKeyWord()只是在界面第一次加载的时候执行!



zhoushangzhi 2003-07-29
  • 打赏
  • 举报
回复
dropdownlist.SelectedIndex=-1;
效果一样
ameng_2002 2003-07-29
  • 打赏
  • 举报
回复
那你试试
dropdownlist.SelectedIndex=-1;
zhoushangzhi 2003-07-29
  • 打赏
  • 举报
回复
我跟踪了一下,发现当执行完
dropdownlist.SelectedItem.Selected=false
后,仍然选中的是第一条
why?
ameng_2002 2003-07-29
  • 打赏
  • 举报
回复
直接绑定dropdownlist不行吗?
为什么要这样循环添加呢?
先将SetKeyWord()函数去掉,看你生成DropDownList的代码对不对?

还有ddChanceRate.Items.FindByValue(KeyWord5).Selected=true;可能会有问题,因为如果没有找到,返回null,null没有Selected属性;
可以改为
ListItem li=ddChanceRate.Items.FindByValue(KeyWord5);
if(li!=null)
li.Selected=true;
zhoushangzhi 2003-07-29
  • 打赏
  • 举报
回复
单步调试不出错
生成Dropdownlist Code:

if (!IsPostBack)
{
ListItem Item1=new ListItem(".","-1");
ddChanceStatus.Items.Add(Item1);
funcPublic funcPub=new funcPublic();
DataSet ds=new DataSet();
SQLStr="select * from tbChanceStatus";
ReturnInfo=funcPub.ExecSelect(ds,SQLStr,ConStrFile,"Status");
if (ReturnInfo=="Success")
{
int RowCount=ds.Tables["Status"].Rows.Count;
if (RowCount>0)
{
for (int i=0;i<RowCount;i++)
{
string ItemValue=ds.Tables["Status"].Rows[i]["ChanceStatusID"].ToString();
string ItemText=ds.Tables["Status"].Rows[i]["StatusName"].ToString();
ListItem Item=new ListItem(ItemText,ItemValue);
ddChanceStatus.Items.Add(Item);
}
}
}
//=====================================
ListItem Item2=new ListItem(".","-1");
ddChancePrincal.Items.Add(Item1);
DataSet ds1=new DataSet();
SQLStr="select * from tbOperator";
ReturnInfo=funcPub.ExecSelect(ds1,SQLStr,ConStrFile,"Operator");
if (ReturnInfo=="Success")
{
int RowCount=ds1.Tables["Operator"].Rows.Count;
if (RowCount>0)
{
for (int i=0;i<RowCount;i++)
{
string ItemValue1=ds1.Tables["Operator"].Rows[i]["OPID"].ToString();
string ItemText1=ds1.Tables["Operator"].Rows[i]["OPName"].ToString();
ListItem Item3=new ListItem(ItemText1,ItemValue1);
ddChancePrincal.Items.Add(Item3);
}
}
}
//=====================================
if (ResItem!="")
{
Boolean BoolDel=DeleteRow(ResItem.ToString());
}
SetKeyWord();
}

大哥们,帮帮忙吧
Fortune2k1 2003-07-29
  • 打赏
  • 举报
回复
那你单步调试,到哪一步出错呢?
cyp503 2003-07-29
  • 打赏
  • 举报
回复
其他代码呢?

johnbbs 2003-07-29
  • 打赏
  • 举报
回复
有两种方法解决:
1.动态绑定下拉框DropDownList,在cs代码中绑定,如:来源于数据库中的某个字段;
2.通过Hashtable来实现,通过绑定SelectedIndex的值,这种方法可以参考QuickStart例程.
zhoushangzhi 2003-07-29
  • 打赏
  • 举报
回复
to Fortune2k1(Forune2k1)
对,我也用过好多次的,但现在无法通过
zhoushangzhi 2003-07-29
  • 打赏
  • 举报
回复
ddChanceStatus.SelectedItem.Selected=-1;一句本来就不对的
Fortune2k1 2003-07-29
  • 打赏
  • 举报
回复
但以下程序是正确执行的:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
DropDownList1.Items.FindByValue("A").Selected = True

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DropDownList1.SelectedItem.Selected = False
DropDownList1.Items.FindByValue("B").Selected = True
End Sub
fmj1980 2003-07-29
  • 打赏
  • 举报
回复
ddChanceStatus.SelectedItem.Selected=false;
改为
ddChanceStatus.SelectedItem.Selected=-1;
zhoushangzhi 2003-07-29
  • 打赏
  • 举报
回复
to ameng_2002(flyfox)
不行的,我刚试过了;

to Fortune2k1(Forune2k1)
我的所有Item 都是动态加的
Fortune2k1 2003-07-29
  • 打赏
  • 举报
回复
3.最可能的情况是,在设置DropDownList控件的时候把一个Item的Selected属性设置成True了.然后想通过程序动态的设定DropDownList的选中项.这样也会出错.
要通过程序动态的设置选中项,则一开始在设计界面设计Dropdownlist的时候就不能把任何一个Item的Selected属性设置成True.
加载更多回复(4)

62,046

社区成员

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

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

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

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