نمایش آیتم های انتخاب شده در dropdown بعد از رفرش شدن صفحه
من میخوام در اطلاعاتی که در دیتابیس ذخیره شده جستجو انجام بدم یکسری dropdown list دارم که میتونم یکسری فیلد ها رو جهت جستجو انتخاب کنم وقتی دکمه جستجو رو میزنم اطلاعات فرستاده و صفحه رفرش میشود و این باعث میشود که dropdown ها اطلاعات پیشفرض رو نشون بدن. من میخوام که اطلاعاتی که کاربر برای جستجو انتخاب کرده رو نشون بدن البته برای اطلاعاتی که ثابت هستن مشکلی ندارم و به این صورت عمل کردم.
public class StaticDataModel
{
public int ID { get; set; }
public String Titel { get; set; }
public List<StaticDataModel> GetStaticDataModel()
{
var model = new List<StaticDataModel>
{
new StaticDataModel {ID = 0 , Titel = "انتخاب کنید" },
new StaticDataModel {ID = 1 , Titel = "خرید" },
new StaticDataModel {ID = 2 , Titel = "فروش" },
new StaticDataModel {ID = 3 , Titel = "برگشت از خرید" },
new StaticDataModel {ID = 4 , Titel = "برگشت از فروش" },
new StaticDataModel {ID = 5 , Titel = "باتک" },
};
return model;
}
}
کدهای View
@using ModiranVira.PublicClass
@{
ViewData["Title"] = "HasabrseeReport";
StaticDataModel I = new StaticDataModel();
I.ID = ViewBag.FaraindName;
List<StaticDataModel> FrindeList = I.GetStaticDataModel();
}
<div class="col-md-3 col-xs-12">
<label>نام فرآیند</label>
<select class="form-control" asp-for="@I.ID" name="FaraindName" id="FaraindName" asp-items="@(new SelectList(FrindeList,"ID","Titel"))">
</select>
</div>
ولی برای اطلاعاتی که از دیتابیس گرفته میشن نمیدونم چطور باید عمل کنم. مثلا من لیست نام پروژه ها رو از دیتابیس گرفتم و میخوام درون dropdown نشون بدم و بعد از جستجو همون آیتم انتخاب شده باقی بماند.
مثلا ===>
public IActionResult HasabrseeReport(int ControlState , int Projectid )
{
var projectlist = _context.Projects.ToList();
ViewBag.proList = projectlist;
ViewBag.proID = Projectid;
return View();
}
کدهای View
<div class="col-md-3 col-xs-12">
<label>نام پروژه</label>
<select class="form-control" id="form_frame" name="Projectid">
<option value="" default="" selected="">انتخاب کنید</option>
@foreach (var item in ViewBag.proList)
{
<option value="@item.projectID">@item.projectName</option>
}
</select>
</div>
پاسخ هوش مصنوعی
برای اینکه آیتم انتخاب شده در dropdown که اطلاعات آن از دیتابیس گرفته شده بعد از رفرش صفحه حفظ شود، شما باید از ویژگی selected در تگ <option> استفاده کنید. به این صورت که اگر item.projectID برابر با ViewBag.proID بود، attribute selected را به آن گزینه اضافه کنید. می توانید کد مربوط به View را به شکل زیر تغییر دهید:
<div class="col-md-3 col-xs-12">
<label>نام پروژه</label>
<select class="form-control" id="form_frame" name="Projectid">
<option value="" @(ViewBag.proID == null ? "selected" : "")>انتخاب کنید</option>
@foreach (var item in ViewBag.proList)
{
<option value="@item.projectID" @(item.projectID == ViewBag.proID ? "selected" : "")>@item.projectName</option>
}
</select>
</div>
در این کد، برای هر گزینه (<option>)، ابتدا بررسی می شود که آیا item.projectID برابر با ViewBag.proID است یا خیر. اگر برابر بود، ویژگی selected به آن گزینه اضافه می شود و باعث می شود که مهندسی کاربر پس از رفرش صفحه، گزینه انتخاب شده در dropdown باقی بماند.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2