BindItem到SelectedValue不起作用(项目正在工作)

时间:2014-07-23 13:08:50

标签: asp.net webforms enums model-binding

我在一个单独的类中定义了Enum,如下所示:

public static class BudgetDescriptions
{
  public enum Months
    {
        January, February, March, April, May, June, July, August, September, October, November,    December
    };
}

我试图将此Enum绑定到DropDown的SelectedValue。当我使用Item(这是单向绑定)时,它可以工作:

<asp:DropDownList runat="server"
SelectMethod="GetMonths"
DataTextField="Text"
DataValueField="Value"
SelectedValue='<%#
Convert.ToString((int)
(HomeBudgetASP.BudgetDescriptions.Months)
Enum.Parse(typeof(HomeBudgetASP.BudgetDescriptions.Months),
Item.Date.ToString()))
%>'
CssClass="form-control" ID="ddlMonth">

对于SelectedValue我使用Parse将Item.Date转换为Enum作为当前值。

这很好用。

但是,当我将Item更改为 BindItem 时:

SelectedValue='<%#
Convert.ToString((int)
(HomeBudgetASP.BudgetDescriptions.Months)
Enum.Parse(typeof(HomeBudgetASP.BudgetDescriptions.Months),
BindItem.Date.ToString()))
%>'

尝试访问网页时出现以下错误:

BindItem的代码语法无效。

所以我很想知道,不知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

似乎在使用BindItem时我们无法转换数据类型。所以BindItem.Date.ToString()不会工作。

解决方案是恢复为此之前的ASP.NET 4.5样式的Bind(“Date”)。