我正在开发一个项目,我有一个OdbcDataReader,它从查询中读取数据并使用查询中的项填充DropDownList。当我运行Web应用程序并在列表中选择不同的项目时,所选值永远不会更改是否启用了回发,是否启用了smartpaging,或者是否启用了EnableViewState
protected void populateGrid(OdbcDataReader reader)
{
ClientDropDownList.DataSource = reader;
ClientDropDownList.DataTextField = "company";
ClientDropDownList.DataBind();
}
答案 0 :(得分:4)
首先,您应该为Dropdownlist控件设置AutoPostBack = true。
第二件事是你应该通过检查Ispostback
来绑定Page_Load事件中的值If(! IsPostBack())
{
Bind your dropdownlist here.
}
Thrid的东西是按照Asp.Net生命周期流程。每次都会激活页面加载。当页面刷新时。
答案 1 :(得分:1)
检查您是否未在每个PopulateGrid
上致电PostBack
。人们遇到的最常见问题之一。
如果您PopulateGrid
中的来电Page_Load
将其换成if (!IsPostBack)
。
答案 2 :(得分:0)
您可以使用此代码:
foreach (ListItem item in YourDropDownList.Items)
{
if (item.Text == defaultText)
{
item.Selected = true;
break;
}
}