PDA

View Full Version : پر کردن مقادیر لیست باکس



Wily_Fox
پنج شنبه 16 خرداد 1392, 09:18 صبح
با سلام و خسته نباشید

من میخوام لیست باکسی از نام کاربران رو پر کنم. مشکل اینجاست که value لیست آیتم string هست و userId اینتجر هست. convert هم نمی کنه!

کدی که من نوشتم:

var UsersList = (from u in context.UserProfiles
orderby u.UserId
select new SelectListItem
{
Selected = false,
Text = u.UserName,
Value = u.UserId
}).ToList();


چطور این لیست باکس رو پرکنم؟

البته بفرم زیر هم نوشتم. اما این بهینه نیست:


List<SelectListItem> listitems = new List<SelectListItem>(users.Count());
foreach (var item in users)
{
listitems.Add(new SelectListItem()
{
Text = item.UserName,
Value = item.UserId.ToString(),
Selected = false
});
}


متشکرم

mo.esmp
جمعه 17 خرداد 1392, 10:50 صبح
var UsersList = (from u in context.UserProfiles
orderby u.UserId
select new SelectListItem
{
Selected = false,
Text = u.UserName,
Value = u.UserId.ToString()
}).ToList();

دومی چرا بهینه نیست ؟

Wily_Fox
جمعه 17 خرداد 1392, 13:55 عصر
دوست عزیز در پرسش گفتم
مشکل اینجاست که value لیست آیتم string هست و userId اینتجر هست. convert هم نمی کنه!

u.UserId.ToString() رو نمی پذیرد.

دومی هم چون اول با کوری

var users = context.UserProfiles.ToList();

لیست کاربران رو می گیرم بعد با foreach آیتم ها رو مقدار دهی و تبدیل مورد نظر رو انجام میدم.

mo.esmp
شنبه 18 خرداد 1392, 11:30 صبح
اگه u.UserId.ToString() پزیرفته نمیشه از شکلهای دیگه تبدیل نوع استفاده کن ببین قبول میکنه

Value = u.UserId as string
Value = (string) u.UserId
Value = u.UserId is string

باز هم میگم راه دومت هیچ مشکلی نداره.

Wily_Fox
شنبه 18 خرداد 1392, 15:54 عصر
خیلی ممنون که وقت میزارید.
قبلا همه این حالات رو بررسی کردم اما متاسفانه هیچ یک از این حالات رو نمی پذیره.

Cybersilent
یک شنبه 19 خرداد 1392, 09:12 صبح
شما نمی تونید عملیات تبدیل رو در بین دستورات LINQ بکار ببرید.
http://stackoverflow.com/questions/1066760/problem-with-converting-int-to-string-in-linq-to-entities

که شاید بتونید از تابع SqlFunctions.StringConvert (http://msdn.microsoft.com/en-us/library/dd466166.aspx)استفاده کنید.

Wily_Fox
یک شنبه 19 خرداد 1392, 15:19 عصر
دستت درد نکنه.

دقیقا همون چیزی هست که می خواستم.


var UsersList = (from u in context.UserProfiles
orderby u.UserId
select new SelectListItem
{
Selected = false,
Text = u.UserName,
Value = SqlFunctions.StringConvert((double) u.UserId)
}).ToList();