我已經創建了一個類,像GridView從System.Web.UI.WebControls.WebControl繼承一些工作。在asp.net DataBinder.Eval錯誤
public class IHGridView : System.Web.UI.WebControls.WebControl
{
// inside here, actually return Repeater class.
protected override void OnInit(EventArgs e)
{
_repeater.ItemTemplate = new IHGridItemTemplate(ListItemType.Item, this.Columns);
this.Controls.Add(_repeater);
}
}
我還爲IHGridView中的轉發器創建了ItemTemplate。
public class IHGridItemTemplate : ITemplate
{
}
IHGridView類返回Repeater和一些html代碼,但爲了方便起見,我創建了一些東西。
public class Columns : StateManagedCollection
{
}
public class IHBoundFieldBase : IStateManager
{
}
public class IHLabelField : IHBoundFieldBase
{
}
現在,在我的aspx,我可以用這個象下面這樣:
<cc1:IHGridView ID="IHGridView1" runat="server" EditMode="View">
<Columns>
<cc1:IHLabelField ID="IHLabelField7" DataField="PERSON_NAME" HeaderText="PersonName" />
</Columns>
</cc1:IHGridView>
現在,我想出了一個問題。 我無法在aspx中使用DataBinder.Eval。
<cc1:IHLabelField ID="IHLabelField7" HeaderText="PersonName" Text='<%# DataBinder.Eval(Container.DataItem, "PERSON_NAME") %>' />
這給了我一個錯誤。 錯誤消息如下:CS1061:'System.Web.UI.Control'中沒有'DataItem'的定義。 'System.Web.UI.Control'的第一個參數中沒有可擴展的方法'DataItem'。請檢查是否使用了標準或裝配參考。這是用韓語寫的,但我翻譯成英文。 任何人都可以給我一個線索來解決這個問題嗎?
非常感謝。我終於找到了解決問題的線索。 –