我有一个下拉列表控件,其中填充了项目和一些代码来获取当前选定的项目值。问题是我只获得列表中第一项的值,而不管实际选择的是什么项目。
这是我填充下拉列表的代码:
protected void displayCreateCategories()
{
StoreDataContext db = new StoreDataContext();
var a = from c in db.Categories
orderby c.Name
select new{catName= c.Name,
catId=c.CategoryID};
ddlCategory.DataSource = a;
ddlCategory.DataTextField = "catName";
ddlCategory.DataValueField = "catId";
ddlCategory.DataBind();
}
要获取当前选定项的值,在我的例子中,它始终是整数类型,我执行 label1.text=Convert.toInt32(ddlCategory.SelectedValue);
我得到了选定的值,但它始终是列表中的第一项。我正在为此烦恼。 :(
最佳答案
我怀疑您每次加载页面时都在运行列表加载代码,这会破坏列表、重新填充列表并在运行选择检索代码之前自动选择第一项。
在 Page_Load
中使用此构造:
if (!IsPostBack)
{
// Initial control population goes here
}
关于c# - 下拉列表的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342306/