有人可以嘗試推薦下面的請求最好的行動起因:.Net Repeater對於單個對象等效嗎?
我已經創建了一些使用Repeater類作爲基地的擴展類,並喜歡這樣做的靈活性,易用性和結果。我現在想要做的是爲單個對象創建一個類似的自定義Web控件(即DataSource不實現IListSource或IEnumerable)。我創建了我試圖通過擴展中繼器來實現的結構,然後使用1項目列表來設置數據源來保存對象,然後進行數據綁定。
e.g a rough example:
Dim oObj as New MyObject(1)
Dim gl As New Generic.List(of MyObiect)()
gl.Add(oObj)
rpt.DataSource = gl
rpt.DataBind()
這似乎像周圍的事物,我想什麼,能夠做一個小黑客如下:
e.g new call, where my control is the new custom control:
Dim oObj as New MyObject(1)
myControl.DataSource = oObj
myControl.DataBind()
我希望能夠定義各種變量這種自定義控件性能,其結果將具有以下類型的佈局:
<My:ObjControl ID="frm" runat="server">
<Tabs>
<My:Tab name="Details">
<Items>
<My:Item Type="Text" Label="First Name" Property="FirstName" />
<My:Item Type="Text" Label="Last Name" Property="LastName" />
<My:Item Type="Text" Label="Title" Property="Title" />
</Items>
</Tab>
<My:Tab name="Address">
<Items>
<My:Item Type="Text" Label="Address 1" Property="Address1" />
<My:Item Type="Text" Label="Address 2" Property="Address2" />
<My:Item Type="Text" Label="Address 3" Property="Address3" />
</Items>
</Tab>
</Tabs>
</My:ObjControl>
該實現使用WebForms的發生,雖然它看起來像使用MVC將是理想的方法考慮到以上情況。通過這樣做,我想創建一個靈活的WebControl,它使用反射(可用於實現特定接口的所有類),每次需要時只生成所需的三行代碼(上面)。
我應該只是添加一個屬性到一個自定義的中繼器(數據對象),它需要一個對象並相應地設置數據源並節省我的時間?或者,還有更好的方法?
希望這一切都有道理!
乾杯, 史蒂夫
好吧,想想過程非常困難,但是我的控制能夠實現的是產生一個帶有兩個鋰標籤「詳細信息」和「地址」的頁面,它們可以在每個標籤之間進行選項卡標籤和匹配可以更新對象的表單元素。你所表現的完全錯過了這一點 - 可能是我在問題措詞上的錯。 當然在你的例如我可以做:Eval(「FirstName」)。 – stibstibstib 2009-05-03 19:59:09