将FormView中的列表绑定到ASP.net webforms中的模型

时间:2010-03-05 08:02:56

标签: c# asp.net data-binding list formview

对于大型填充表单,我使用asp.net FormView进行模型的魔术数据绑定。在这个模型中,我有一个名为Rides的属性(如下所示),它公开了一个列表,我显然不想完全替换它。所以我把它做成了只读。

然而,这样我就不能再使用数据绑定功能了。这个问题有一个共同的解决方案吗?

public IList<Ride> Rides
{
    get
    {
        if (this._rides == null)
        {
            this._rides = new List<Ride>();
        }

        return this._rides;
    }
}

3 个答案:

答案 0 :(得分:1)

您仍然可以使用数据绑定,而不是&lt;%#Bind(“PropertyName”)%&gt;使用&lt;%#Eval(“PropertyName”)%&gt;, 因为Bind通常是2路绑定&amp; Eval通常用于评估基础数据源,当你有一个setter时,Bind也会很方便。 希望这能够带来足够的光线和光线。你会发现它很有帮助。

答案 1 :(得分:0)

在黑暗中狂野刺,不知道这是否会奏效,但我想你可以试试......

如何将setter(set)放回属性中,但是将其赋值给自己?

例如。

set
{
    this._rides = this._rides;  // Rather than this._rides = value;
}

这意味着该值不可触及该属性,如果尝试设置操作,它将不会造成任何损害,并且仍应绑定...

答案 2 :(得分:0)

蒙蒂, 看一下名为BindingList的类。绑定列表支持双向绑定。您可以在代码中从Yor集合创建它,并将其出价到FormView的datasource属性。我想这就是你想要的。 同样通过暴露IList你没有把这个东西做成只读。我可以重新制作列表,我可以一直修改你的项目。如果你真的想把rides作为只读方式返回IEnumerable并且不是通过ReadOnlyCollection返回List ...那个重排列表给另一个类不会有帮助。