代码之家  ›  专栏  ›  技术社区  ›  Herman Cordes

将表单视图中的列表绑定到ASP.net webforms中的模型

  •  2
  • Herman Cordes  · 技术社区  · 16 年前

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

    但是,这样我就不能再使用数据绑定功能了。这个问题有共同的解决办法吗?

    public IList<Ride> Rides
    {
        get
        {
            if (this._rides == null)
            {
                this._rides = new List<Ride>();
            }
    
            return this._rides;
        }
    }
    
    3 回复  |  直到 16 年前
        1
  •  0
  •   luckyluke    16 年前

    蒙蒂, 请看一个名为BindingList的类。绑定列表支持双向绑定。您可以在代码中从您的集合创建它,并将它绑定到FormView的datasource属性。我想这就是你想要的。 另外,通过公开IList,您还没有将此内容设置为只读。我可以重铸的名单,我可以修改你的所有项目的方式。如果你真的想以只读返回IEnumerable而不是ReadOnlyCollection返回一个列表的形式公开游戏。。。重铸名单对其他职业没有帮助。

        2
  •  1
  •   StevenzNPaul    16 年前

    您仍然可以使用数据绑定,而不是<%#绑定(“PropertyName”)%>使用<%#Eval(“PropertyName”)%>, 因为绑定通常用于双向绑定&Eval通常用于评估底层数据源,当您有一个setter时,Bind也很方便。 希望这能给你带来足够的光明;你会发现它很有用。

        3
  •  0
  •   Jamie Chapman    16 年前

    把setter(set)放回属性中,但让它自己赋值,怎么样?

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

    推荐文章