2
問題:我有一個枚舉類型,它具有以下樣式的描述標籤:[URL =「http://xml.indelv.com/data-binding-enum.html 「]描述標籤教程[/ URL]。我有一個Windows SQL Server數據庫,我將數據從該數據庫中提取出來(作爲整數,然後將其轉換爲枚舉),然後綁定到數據網格。我不想拉和枚舉枚舉類型,我想在枚舉類型中顯示與它關聯的描述標籤。如何將自定義Enum描述綁定到DataGrid
這裏是ASP -
<asp:GridView ID="StatementGrid" runat="server" AutoGenerateColumns="false" DataKeyNames="statementID" OnRowDeleting="StatementGrid_onDeleting" AllowSorting="False">
<Columns>
<asp:BoundField HeaderText="Type" SortExpression="type" DataField="TypeOfStatement" />
<asp:HyperLinkField HeaderText="Statement" DataTextField="StatementText" DataNavigateUrlFormatString="~/Gateway/Statements/View.aspx?statementID={0}" SortExpression="statement" DataNavigateUrlFields="statementID" />
<asp:HyperLinkField DataNavigateUrlFields="statementID" DataNavigateUrlFormatString="~/Gateway/Statements/Update.aspx?statementID={0}" NavigateUrl="~/Gateway/Statements/Update.aspx" HeaderText="Edit" Text="<img src='../../Images/News/news_edit.gif' alt='Edit Statement'/>" />
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:ImageButton AlternateText="Delete Statement" ID="DeleteButton" ImageUrl="~/Images/News/news_delete.gif" runat="server" CommandName="Delete" OnClientClick="javascript:return confirm('Are you sure you want to delete this statement?');" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
There are no statements to display.
</EmptyDataTemplate>
</asp:GridView>
下面是綁定的代碼 -
[CODE]
private void BindData()
{
IStatementDao statementDao = DaoFactory.GetStatementDao();
List<Statement> statements;
if (Page.Request.RawUrl.Contains("Gateway"))
{
statements = statementDao.GetAll();
StatementGrid.HeaderStyle.CssClass = "GatewayGridHeader";
StatementGrid.AlternatingRowStyle.CssClass = "GatewayGridAlternatingRow";
}
else
{
// This should never be reached but it keeps the compiler happy!!
statements = statementDao.GetAll();
}
StatementGrid.DataSource = statements;
StatementGrid.DataBind();
DisplayTypeDescriptors();
}
[/ CODE]
這裏是所列舉的類 -
[CODE]
public enum TypeOfStatement
{
[EnumDescription("Dress Code")] DressCode = 1,
[EnumDescription("Lunch Time")] LunchTime = 2,
[EnumDescription("Footwarez")] Footware = 3,
[EnumDescription("achtung")] Warning = 4,
[EnumDescription("Banarna")] Banana = 5,
[EnumDescription("Apfel")] Apple = 6
};c#
[/ CODE]
其明顯的,人們可以寫一個廣泛的方法也做我想做的,但有一個更合適的方法?
希望的代碼是有用的:) – ShuggyCoUk 2009-03-09 17:43:48