DropDownList.SelectedValue更改(作为FormView中的子控件)不会粘滞

时间:2008-11-22 11:54:45

标签: c# asp.net data-binding drop-down-menu formview

好的,我在InsertItemTemplate中有一个带有几个子控件的FormView。其中一个是DropDownList,名为DdlAssigned。我在Page的OnLoad方法中引用它,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    ((DropDownList)FrmAdd.FindControl("DdlAssigned")).SelectedValue =
          ((Guid)Membership.GetUser().ProviderUserKey).ToString();
}

基本上我只是将DropDownList的默认值设置为当前登录的用户。

无论如何,当页面完成加载时,SelectedValue的更改不会反映在页面上。我逐步浏览了OnLoad,我可以看到我的观察列表中反映出的变化,但是当所有内容完成时,页面上没有任何不同之处。

2 个答案:

答案 0 :(得分:4)

我明白了。我仍然错过了为什么它不能仅仅在FormLoad上工作,但在FormView的DataBound事件中执行更改就可以了。

protected void FrmAdd_DataBound(object sender, EventArgs e)
{
    // This is the same code as before, but done in the FormView's DataBound event.
    ((DropDownList)FrmAdd.Row.FindControl("DdlAssigned")).SelectedValue =
        ((Guid)Membership.GetUser().ProviderUserKey).ToString();
}

所以,我想一般的经验法则是,如果在使用数据绑定时对控件进行更改时遇到问题,请尝试在绑定后立即对它们进行修改。

答案 1 :(得分:0)

我遇到了下拉列表的问题,并使第一个值说出“请选择一个值...”,但不会使其成为实际的可选项,也不会显示在下拉列表中。我在page_load中绑定了ddl,我必须确保在设置了数据绑定后的下拉列表文本。通过将其添加到数据绑定部分,您已经完成了同样的事情。