Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 下拉列表有问题_C#_Asp.net - Fatal编程技术网

C# 下拉列表有问题

C# 下拉列表有问题,c#,asp.net,C#,Asp.net,我有一个下拉列表控件,其中填充了项目和一些代码,用于获取当前选定的项目值。问题是我只得到列表中第一个项目的值,而不管实际选择了哪个项目 以下是填充下拉列表的代码: protected void displayCreateCategories() { StoreDataContext db = new StoreDataContext(); var a = from c in db.Categories orderby c.Name

我有一个下拉列表控件,其中填充了项目和一些代码,用于获取当前选定的项目值。问题是我只得到列表中第一个项目的值,而不管实际选择了哪个项目

以下是填充下拉列表的代码:

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();   
}
要获取当前所选项目的值(在我的示例中,该项目始终为integer类型),请执行label1.text=Convert.toint32ddlcegory.SelectedValue;
我得到所选的值,但它始终是列表中第一项的值。我正为这件事发愁

我怀疑您每次加载页面时都在运行列表加载代码,这会破坏列表,重新填充列表,并在运行选择检索代码之前自动选择第一项

在页面加载中使用此结构:


我怀疑您每次加载页面时都在运行列表加载代码,这会破坏列表,重新填充列表,并在运行选择检索代码之前自动选择第一项

在页面加载中使用此结构:


数据绑定将重置控件的选定值,因此请确保在回发数据绑定之前检索选定值。

数据绑定将重置控件的选定值,因此请确保在回发数据绑定之前检索选定值。

在我真正坐下来理解页面之前,这对我来说有很大帮助生命周期-事件名称听起来与WinForms中的名称相同,但非常不同。我想你可以试试这个解决方案。因为如果在页面加载中调用函数,每次都会重置值。因此,请尝试使用ISPostback。在我真正坐下来了解页面生命周期之前,这对我来说很有帮助-事件名称听起来与WinForms中的相同,但却大不相同。我想你可以试试这个解决方案。因为如果在页面加载中调用函数,每次都会重置值。所以请尝试使用IsPostBack
if (!IsPostBack)
{
    // Initial control population goes here
}