dropdownList的无法选择多项的问题A.aspx中dropdownlist是查询数据库中的类别后,C# codeprotected void DD
dropdownList的无法选择多项的问题
A.aspx中
dropdownlist是查询数据库中的类别后,
C# codeprotected void DDLCGBind() { //查询所有类别,绑定到dropdownlist控件中 CategoryBLL categoryBLL = new CategoryBLL(); IList<BPMCategory> listCategory = categoryBLL.GetAllCategory(); ddlCategory.DataSource = listCategory; ddlCategory.DataValueField = "ID"; ddlCategory.DataTextField = "Category"; ddlCategory.DataBind(); }
再新建了一个项
C# codeListItem newListItem1 = new ListItem(); newListItem1.Value = "0"; newListItem1.Text = "所有类别"; ddlCategory.Items.Insert(0, newListItem1);
从B.aspx页面返回到A.aspx页面的时候,回传了一个参数,也就是ID值
这时候希望dropdownlist能够选中相同ID值的项
测试的时候,发现ddlCategory.SelectedIndex总是等于0,也就是我新增的这项
网上查询了一下,有人也提出了类似问题,给出了一些方法,我尝试了一下:
无论用ddlCategory.ClearSelection();方法还是ddlCategory.SelectedIndex=-1;还是
C# code for (int i = 0; i < ddlCategory.Items.Count; i++) { if (ddlCategory.Items[i].Value == urlIDcg.ToString()) { ddlCategory.SelectedIndex = i; break; } }
都无法改变选中项,然后报错,求各位指点一二,小弟不胜感激。
[解决办法]Request.Form取一下子。可能是回传的时Ispostback没有再往下面执行下去。但是页面上的值是存在的
[解决办法]ddlCategory.Items.FindByValue("传过来的ID").Selected=true;
[解决办法]是不是回发了
if(!IsPostBack)
{
DDLCGBind();
//再加一项....
}
[解决办法]ddlCategory.Items.Insert(0, newListItem1);这个后面
加上ddlCategory.ClearSelection();
然后加上ddlCategory.Items.FindByValue("传过来的ID").Selected=true;
[解决办法]ListBox 才能多选,dropdownList只能单选
<asp:ListBox ID="x" runat="server" SelectionMode="Multiple"></asp:ListBox>
[解决办法]判断一下如果传过来的id不为空
this.ddlCategory.SelectedValue = id.ToString();
[解决办法]ListItem newListItem1 = new ListItem();
newListItem1.Value = "0";
newListItem1.Text = "所有类别";
ddlCategory.Items.Insert(0, newListItem1);
上面这些是在ddlCategory的OnDataBound事件里面加的么?
[解决办法]谁说的允许改变ddlCategory.SelectedIndex了?
是你没使用好吧?