c# - 下拉列表的问题

标签 c# asp.net

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

这是我填充下拉列表的代码:

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/

相关文章:

c# - 通用参数基类型 : "There is no implicit reference conversion from B to A"

c# - DeflateStream 不适用于 MemoryStream?

c# - 在类下的 CSS 中显示背景图像

asp.net - 如何在 <ItemTemplate> 中继器中查找控件

c# - 指针的黑魔法

c# - 二进制序列化,IFormatter : use a new one each time or store one in a field?

ASP.NET MVC 当前请求 url(ajax 调用问题)

返回 void 的 ASP.Net MVC Controller 操作

c# - 如何处理同一控件上的快捷键和按住键

javascript - 两种类型的用户通过同一登录页面登录