2

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

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

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

无论如何,当页面完成加载时,SelectedValue 更改不会反映在页面上。我逐步浏览了 OnLoad,我可以看到我的观察列表中反映的变化,但是当一切都说完了,页面上没有什么不同。

4

2 回答 2

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();
}

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

于 2008-11-23T06:10:10.603 回答
0

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

于 2008-11-23T06:15:42.697 回答