View Full Version : سوال: مشکل با DropDownList
MiladParvane
چهارشنبه 07 اسفند 1392, 01:48 صبح
با سلام من یه drop down list دارم که میخوام با اطلاعات بانک پر بشه و کاربر هر گزینه رو انتخاب کرد کد اون گزینه گرفته بشه
با تشکر
msartin
چهارشنبه 07 اسفند 1392, 05:15 صبح
سلام دوست عزیز
ابتدا توی بانکت یک Stored Procedure درست کن و دستور select * from table را توش تایپ کن و ذخیرش کن.
بعد توی لود برنامت دستورات زیر رو بنویس :
SqlConnection con = new SqlConnection("server=.\\servername;DataBase=Bankname");
SqlDataAdapter da = new SqlDataAdapter("StoredProcedurename", con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
da.Fill(dt);
combobox.datasource=dt;
combobox.displaymember="fieldname";
Cybersilent
چهارشنبه 07 اسفند 1392, 10:26 صبح
بالای View خودتون بزنید:
@
{
Context db = new Context();
List<Account> accounts = db.Accounts.ToList();
}
و کد DropDown رو اینطوری بنویسید:
@Html.DropDownListFor(model => model.Account, new SelectList(accounts), new Dictionary<string, object>() { { "data-val", "false" } })
برای گرفتن مقدار انتخاب شده سمت کنترلر هم این مطلب رو بخونید:
http://www.dotnettips.info/post/1559/%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-binding-%DB%8C%DA%A9-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C%D8%AA-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-attributes
MiladParvane
چهارشنبه 07 اسفند 1392, 22:51 عصر
دستتون درد نکنه فقط نفهمیدم چطور کد آیتم انتخاب شده رو بدست بیارم
Cybersilent
پنج شنبه 08 اسفند 1392, 11:09 صبح
توی مطلبی که لینک کردم نوشته شده که!!
خوندید ؟ اگر جاییش مشکل دارید تا توضیح بدم.
MiladParvane
پنج شنبه 08 اسفند 1392, 11:45 صبح
داداش کلا زیاد اون کدو نفهمیدم یه کد ساده تر همین کارو تو برنامه ویندوزی انجام بدیم چقدر سادست منظورم اونجوری هست دستت درد نکنه
Dr.Bronx
پنج شنبه 08 اسفند 1392, 20:04 عصر
روشی که دوستمون فرمودن درست هست اما استاندارد نیست .
شما باید برای مدل هاتون Repository تعریف کنید و از اون ها استفاده کنید .
مثال زیر رو ببینید .
مثلا ما یک مدل داریم به این صورت :
namespace myProj.Models.Accounts.Roles
{
public class AccountRoles
{
public int Id { set; get; }
public string Name { set; get; }
public string CreatedOn { set; get; }
public int CreatedUser { set; get; }
public bool IsTrash { set; get; }
}
}
خوب حالا مثلا می خوایم تمام رکورد ها موجود در این مدل رو توی یک DropDownList نشون بدیم .
از Id به عنوان Value و از Name به عنوان Text استفاده می کنیم .
خوب حالا یک کلاس جدید ایجاد می کنیم و به صورت زیر عمل می کنیم .
public class AccountsRepository
{
private Context db = new Context();
public List<SelectListItem> GetAllRolesList()
{
var rpRolesList = (from Role in db.SimaAccountRoles
select new SelectListItem
{
Text = Role.FarsiName,
Value = SqlFunctions.StringConvert((double)Role.Id)
});
return rpRolesList.ToList();
}
}
خوب الان ما یک List<SelectListItem> درست کردیم و اطلاعات خودمون رو داخلش ریختیم .
حالا برای استفاده .
در View
@Html.DropDownListFor(x => x.Role, Model.RoleList, new { @class = "DropDown_Width150" })
در کنترلر هم :
private AccountsRepository AccRep = new AccountsRepository();
Categories objAccRoles = new Categories();
objAccRoles .PermissionList = AccRep.GetAllRolesList();
return View(objAccRoles );
خوب حالا اون مدل اصلی که قرار هست اطلاعات داخلش باشه . باید 2 تا فیلد داشته باشه . یکیش که مجازی هست و از نوع
IEnumerable<SelectListItem> هست و کارش فقط نمایش این اطلاعات هست اما اون یکی نگهدارنده اطلاعات هست که به صورت زیر میشه :
public int Permission { set; get; }
public IEnumerable<SelectListItem> PermissionList { set; get; }
نکته :
IEnumerable<SelectListItem> مربوط به کتابخونه System.Web.Mvc هست .
اگر سوالی داشتید در خدمتم .
موفق باشید ./
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.