DropDownList选中问题 如果DropDownList的autopostback属性不选上的话ddl.Items.FindByValue("value").Selected = true;用上面这个方法是不是不能设置ddl的默认选中值? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你指什么时候默认选中?pageload的时候? 如果用你说的要这样子写 ddl.SelectedIndex=ddl.Items.IndexOf(ddl.Items.FindByValue(CurrentSelectItem)); 太长了,所以我就用ddl.Items.FindByValue("value").Selected = true; 两个的意思是一样的 不加上autopostback=True,数据不会回发,也就不会获得选择项 不用设autopostback,可以的,你的问题出在其他地方,看看绑定数据是不是有问题 不加上autopostback=True,数据不会回发,也就不会获得选择项 ddl.SelectedValue = "value"; ProductBLL _ProductBLL = new ProductBLL(); T_Product _T_Product = new T_Product(); int productid,classid; protected void Page_Load(object sender, EventArgs e) { productid = Convert.ToInt32(Request.QueryString["c"].ToString()); if (!IsPostBack) { ddlProductClass_Bind(); if (productid == 0) { } else { DataTable dt = new DataTable(); dt = _ProductBLL.GetProductDetail(productid); txtName.Text = dt.Rows[0]["productName"].ToString(); txtPrice.Text = dt.Rows[0]["productPrice"].ToString(); txtCount.Text = dt.Rows[0]["productCount"].ToString(); txtContent.Text = dt.Rows[0]["productContent"].ToString(); ddlProductClass.Items.FindByValue(“value”).Selected = true; } } }代码是这样子的喔 是这样的,DDL绑定了数据以后,默认会选中第一个item,如果你想让DDL选中你需要的数据,你需要先记录下当前DDL的selectindex,然后循环遍历DDL的所有item,如果item.Value等于你需要选中的value,则需先将DDL当前的selectindex的select属性设置为false,然后再将符合条件的item的select属性设置为true,例:int index = ddl.selectIndex;for(int i=0;i<ddl.items.count;i++){ if(ddl.items[i].Value=="需要选中的值") { ddl.items[index].select = false; ddl.items[i].select = true; break; }} ddlProductClass.selectedItem.Text="想选中的文本";试试这个 ddlProductClass.Items[index].Selected = true; for (int i = 0; i < dt.Rows.Count; i++) { string tName = dt.Rows[i][1].ToString(); string tId = dt.Rows[i][0].ToString(); DropDownList1.Items.Add(new ListItem(tName, tId)); } DropDownList1.Items.FindByValue("3").Selected = true; 这是我写的绑定方法和按你要的方式设置的值,没有问题关键是这句 DropDownList1.Items.Add(new ListItem(tName, tId));绑定时要给value赋值才能取到 在pageload的时候先绑定数据,然后选择一个默认显示的项autopostback是在下拉框出现changed的时候自动触发post过程,一般跟onchanged合用,跟你load时绑定默认不搭尬的 做测试类的网站,如何设计表和字段。 数据库分区怎么分区更合理?寻求高手指点 一个关于应用程序级的常量的问题。 为什么传进去的参数""被当成了null呢? div 如何自动伸长? 关于Codebehind的问题,请赐教! .net莫名其妙的问题,郁闷呀!救救我吧! 防止非法下载(附一小问) 一个小问题. Crystal Reports的问题,大家帮我看一下,好烦啊, html#传参 做这样的一个网站难度有多大!希望高手支招
如果用你说的要这样子写 ddl.SelectedIndex=ddl.Items.IndexOf(ddl.Items.FindByValue(CurrentSelectItem));
太长了,所以我就用ddl.Items.FindByValue("value").Selected = true; 两个的意思是一样的
你的问题出在其他地方,看看绑定数据是不是有问题
T_Product _T_Product = new T_Product();
int productid,classid; protected void Page_Load(object sender, EventArgs e)
{
productid = Convert.ToInt32(Request.QueryString["c"].ToString());
if (!IsPostBack)
{
ddlProductClass_Bind();
if (productid == 0)
{
}
else
{
DataTable dt = new DataTable();
dt = _ProductBLL.GetProductDetail(productid);
txtName.Text = dt.Rows[0]["productName"].ToString();
txtPrice.Text = dt.Rows[0]["productPrice"].ToString();
txtCount.Text = dt.Rows[0]["productCount"].ToString();
txtContent.Text = dt.Rows[0]["productContent"].ToString();
ddlProductClass.Items.FindByValue(“value”).Selected = true;
}
}
}
代码是这样子的喔
int index = ddl.selectIndex;
for(int i=0;i<ddl.items.count;i++)
{
if(ddl.items[i].Value=="需要选中的值")
{
ddl.items[index].select = false;
ddl.items[i].select = true;
break;
}
}
试试这个
for (int i = 0; i < dt.Rows.Count; i++)
{
string tName = dt.Rows[i][1].ToString();
string tId = dt.Rows[i][0].ToString();
DropDownList1.Items.Add(new ListItem(tName, tId));
}
DropDownList1.Items.FindByValue("3").Selected = true; 这是我写的绑定方法和按你要的方式设置的值,没有问题
关键是这句 DropDownList1.Items.Add(new ListItem(tName, tId));
绑定时要给value赋值才能取到
autopostback是在下拉框出现changed的时候自动触发post过程,一般跟onchanged合用,跟你load时绑定默认不搭尬的