resident
سه شنبه 05 فروردین 1393, 17:36 عصر
سلام.
من از کد زیر برای تبدیل enum به dropdownlist استفاده می کنم. درست کار می کنه.
تنها موردی که داره اینه که در حالت ویرایش مقدار انتخاب شده رو انتخاب نمی کنه.
Trace کردم دیدم که در کد مقدار Selected درست ست میشه اما نمیدونم چرا نمایش نمیده
ممنون میشم اگه دوستان راهنمایی کنند..
public static IHtmlString EnumDropDownListFor<TModel, TEnum>(this HtmlHelper<TModel> html, Expression<Func<TModel, TEnum>> expression, string optionLabel, object htmlAttributes)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
var enumType = Nullable.GetUnderlyingType(metadata.ModelType) ?? metadata.ModelType;
var enumValues = Enum.GetValues(enumType).Cast<object>();
var items = from enumValue in enumValues
select new SelectListItem
{
Text = GetResourceValueForEnumValue(enumValue),
Value = Convert.ToInt32(enumValue).ToString(),
Selected = enumValue.Equals(metadata.Model)
};
return html.DropDownListFor(expression, items, optionLabel, htmlAttributes);
}
من از کد زیر برای تبدیل enum به dropdownlist استفاده می کنم. درست کار می کنه.
تنها موردی که داره اینه که در حالت ویرایش مقدار انتخاب شده رو انتخاب نمی کنه.
Trace کردم دیدم که در کد مقدار Selected درست ست میشه اما نمیدونم چرا نمایش نمیده
ممنون میشم اگه دوستان راهنمایی کنند..
public static IHtmlString EnumDropDownListFor<TModel, TEnum>(this HtmlHelper<TModel> html, Expression<Func<TModel, TEnum>> expression, string optionLabel, object htmlAttributes)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
var enumType = Nullable.GetUnderlyingType(metadata.ModelType) ?? metadata.ModelType;
var enumValues = Enum.GetValues(enumType).Cast<object>();
var items = from enumValue in enumValues
select new SelectListItem
{
Text = GetResourceValueForEnumValue(enumValue),
Value = Convert.ToInt32(enumValue).ToString(),
Selected = enumValue.Equals(metadata.Model)
};
return html.DropDownListFor(expression, items, optionLabel, htmlAttributes);
}