1

我正在使用 Framework 4.5 并决定利用它的一些改进。假设我在 FormView 中有以下控件:

<asp:TextBox ID="EventNumberTextBox" runat="server" Text='<%# Item.Event_Num %>' />

在我的 UpdateMethod 中,我进行了以下操作:

public void UpdateModelFromView(int? ID)
{
    var modelView = new AlertMessageController().LoadById(ID);
    var updateSuccess = TryUpdateModel(modelView);
    if (updateSuccess)
    {
        new AlertMessageController().Save(modelView);
        RedirectToViewPage();
    }
}

问题是,尽管 Form 集合确实包含我所做的所有更改——在给定的情况下,我已将 Event_Num 设置为某个值——但这些更改并未反映到 modelView。换句话说,我对 FormView 控件所做的任何更改都将被忽略,并且模型在加载后按原样保存......

4

3 回答 3

3

Item 仅用于单向数据绑定。对于双向数据绑定,您应该使用 BindItem,即 BindItem.Event_Num。

于 2013-06-24T07:07:23.573 回答
0

Anik,我认为表单字段名称需要与属性名称匹配。

于 2013-06-21T15:35:11.357 回答
0

不幸的是,他们的例子非常狭窄。我下载下来分析一下。他们没有演示 FormView 更新方法,只有网格,所以我不知道 FormView 控件的 ID 和 NAME。我认为绑定值应该足以设置与更新的实际属性的对应关系(即 Item.Event_Num)。还有一件更奇怪的事情:当我单击 TryUpdateModel 方法时 - 它会将我带到 UserControl,但它没有显示此方法的描述!但是我确实安装了 FrameWork 4.5,并且我的文档取自在线源...

于 2013-06-22T16:54:40.040 回答