2010-03-05 43 views
2

對於一個大的填充表單,我使用asp.net FormView作爲我的模型的魔術數據綁定。在這個模型中,我有一個名爲Rides的屬性(如下所示),它顯示了一個列表,顯然我不想完全替換它。所以我只讀了。從FormView綁定列表到ASP.net模型webforms

但是,這種方式我不能再使用數據綁定功能。這個問題有沒有共同的解決方案?

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

     return this._rides; 
    } 
} 
+0

當你說你不能使用DataBinding時,問題究竟是什麼?怎麼了?你是否收到任何錯誤信息? – 2010-03-08 14:54:55

回答

0

蒙蒂, 看看一個類名爲BindingList。綁定列表啓用雙向綁定。您可以從代碼中的Yor集合中創建它,並將其投標到FormView的數據源屬性中。我認爲這是你想要的。 另外通過暴露IList你還沒有使這個事情是隻讀的。我可以重寫列表,我可以一直修改您的項目。如果你真的想公開遊樂設施作爲只讀返回IEnumerable和返回一個ReadOnlyCollection列表不重複列表重鑄列表到其他類不會'幫助。

+1

我想這會做,儘可能接近我想。當然,我知道曝光,因爲IList不會使其成爲只讀。將嘗試這一點,謝謝。 – 2010-03-15 10:09:08

+0

對不起,我看到你的意思是,該屬性是一個只能得到。我的錯:) – luckyluke 2010-03-15 10:56:28

1

您仍然可以使用數據綁定,而不是<%#綁定( 「屬性名」)%>使用<%#的eval( 「屬性名」)%>, 作爲綁定通常是2路結合& Eval通常用於評估底層數據源,當你有一個setter時,Bind也會很方便。 希望這個棚子足夠的光線&你會發現它有幫助。

+0

感謝您的回答。但是,我的目的是能夠在FormView中使用屬性遊樂設施。最好是我希望該屬性是數據綁定(<%#Bind(「PropertyName」)%>而不是<%#Eval(「PropertyName」)%>)。 – 2010-03-10 11:22:14

0

在黑暗中刺野,不知道這是否會工作,但我想你可以試試... ...

如何把二傳手(套)早在物業,但要分配給自己?

例如。

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

這將意味着該值是從屬性不能改變,如果一組操作嘗試它不會做任何損害,還是應該結合...

+0

感謝您的回覆,但它不會工作......這樣DataBind()方法仍然無法將值綁定回其源。 – 2010-03-11 11:10:11