好的,我在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,我可以看到我的观察列表中反映出的变化,但是当所有内容完成时,页面上没有任何不同之处。
答案 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,我必须确保在设置了数据绑定后的下拉列表文本。通过将其添加到数据绑定部分,您已经完成了同样的事情。