ASP.NET DropDownList SelectedValue属性未立即设置

时间:2009-06-18 14:12:22

标签: asp.net webforms drop-down-menu

我有一个ASP.NET webform,我使用DropDownList控件允许用户选择一个项目并查看相关结果。出于某种原因,当我设置DropDownList的SelectedValue属性时,它设置的值不会立即可用。

这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        DropDownList1.SelectedValue = "5";
        BindView();
    }
}

protected void BindActivities()
{
    DataClassesDataContext dc = new DataClassesDataContext();
    var query = from activity in dc.Activities
                where activity.AssignedTo == Convert.ToInt32(DropDownList1.SelectedValue);
    GridView1.DataSource = query;
    GridView1.DataBind();
}

在前面的代码中,我得到DropDownList1.SelectedValue为null的错误。奇怪的是,如果我注释掉使用DropDownList1.SelectedValue的代码并让页面加载,DropDownList1实际上设置为值5.所以看起来它设置正确但是不能立即可用。调试器确认DropDownList.SelectedValue在设置它的代码行之后不会立即设置为5。

这里有什么想法?

2 个答案:

答案 0 :(得分:7)

您是否在绑定下拉列表之前设置了值?

答案 1 :(得分:2)

是的,上面的用户是对的

if (!Page.IsPostBack)
{
    BindView();
    DropDownList1.SelectedValue = "5";
}

......应该可以正常工作。

没有延迟执行,只是执行的顺序。