PDA

View Full Version : استفاده از DropDownList و نتیجه لحظه ای



jaykob
جمعه 28 آذر 1393, 14:34 عصر
سلام

من می خواهم زمانی که مقدار یکی از DropDownList هام تغییر کنه عملیاتی مثل نشون داده یک مبلغ رو انجام بدم قبلا در web forms از event ها می شد استفاده کرد در MVC چطور این مورد رو پیاده سازی کنم ؟

با تشکر

alef.divar
جمعه 28 آذر 1393, 16:37 عصر
سلام

من می خواهم زمانی که مقدار یکی از DropDownList هام تغییر کنه عملیاتی مثل نشون داده یک مبلغ رو انجام بدم قبلا در web forms از event ها می شد استفاده کرد در MVC چطور این مورد رو پیاده سازی کنم ؟

با تشکر
سلام
باید با جکوئری اینکارو بکنی.

jaykob
جمعه 28 آذر 1393, 17:05 عصر
سلام
باید با جکوئری اینکارو بکنی.

سلام

ممنون دوست عزیز . اما راهنماییتون به شدت کلی بود در این حد و اندازه می دونم دنبال یک مثال برای پیاده سازی هستم

با تشکر

mohammadreza.najafipour
جمعه 28 آذر 1393, 23:01 عصر
سلام دوست عزیز :لبخندساده:
همونطوری که دوستمون گفتن باید از جی کوئری استفاده کنی. یه قطعه کدی که خودم از اون استفاده می کنم:
فرض می کنیم میخوایم با تغییر مقدار انتخاب شده DropDownList، نتیجه ای از سرور دریافت کنیم و اون رو نمایش بدیم.
این کد برای View استفاده میشه:

<script type="text/javascript">
$(function() {
$('#MyDropDownList').change(function() {
$.ajax({
url: "/admin/jobs/getlist",
type: 'POST',
data: { id: $('#MyDropDownList').val() },
complete: function() {
$('#progress').hide();
},
success: function(result) {
$('#jobDiv').html(result);
}
});
return false;
});
});
</script>

برای Controller هم :

[HttpPost]
[AccessAuthorize(Roles = "Admin")]
public virtual ActionResult GetList()
{
// Request.Form["Id"] --> برای دسترسی به متغیر ارسال شده
// انجام عملیات مورد نظر و پاس دادن مدل
return PartialView(MVC.Admin.Jobs.Views._GetList, model);
}

کلی گفتم، اگه جایی سوال بود در خدمت هستم :لبخندساده:

homa sadeghi
شنبه 13 دی 1393, 09:10 صبح
سلام
من دو تا dropdownlist دارم که مقدار اولی که انتخاب شد بر اساس اولی دومی پر بشه لطفا یک مثال کامل در این زمینه بگذارید با قبلا با asp.net کار می کردم و تازه mvc شروع کردم و زیاد با jquery کار نکردم .ممنون

helpsos
شنبه 13 دی 1393, 09:50 صبح
سلام
از آدرس زیر می توانید راهنمای کامل را دریافت نمایید

ساخت dropdown مرتبط (http://www.dotnettips.info/post/1076/%D8%B3%D8%A7%D8%AE%D8%AA-dropdownlist-%D9%87%D8%A7%DB%8C-%D9%85%D8%B1%D8%AA%D8%A8%D8%B7-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-jquery-ajax-%D8%AF%D8%B1-mvc)

homa sadeghi
یک شنبه 14 دی 1393, 09:11 صبح
سلام دوست عزیز :لبخندساده:
همونطوری که دوستمون گفتن باید از جی کوئری استفاده کنی. یه قطعه کدی که خودم از اون استفاده می کنم:
فرض می کنیم میخوایم با تغییر مقدار انتخاب شده DropDownList، نتیجه ای از سرور دریافت کنیم و اون رو نمایش بدیم.
این کد برای View استفاده میشه:

<script type="text/javascript">
$(function() {
$('#MyDropDownList').change(function() {
$.ajax({
url: "/admin/jobs/getlist",
type: 'POST',
data: { id: $('#MyDropDownList').val() },
complete: function() {
$('#progress').hide();
},
success: function(result) {
$('#jobDiv').html(result);
}
});
return false;
});
});
</script>

برای Controller هم :

[HttpPost]
[AccessAuthorize(Roles = "Admin")]
public virtual ActionResult GetList()
{
// Request.Form["Id"] --> برای دسترسی به متغیر ارسال شده
// انجام عملیات مورد نظر و پاس دادن مدل
return PartialView(MVC.Admin.Jobs.Views._GetList, model);
}

کلی گفتم، اگه جایی سوال بود در خدمت هستم :لبخندساده:


سلام

تو کدی که گذاشتین آدرس
url: "/admin/jobs/getlist",
مربوط به چه فایلی نمی دونم این آدرس چطور بدم
بعد تو کدای سرور:
return PartialView(MVC.Admin.Jobs.Views._GetList, model);
این رو هم نمی دونم چی باشه تو پروژه خودم

homa sadeghi
یک شنبه 14 دی 1393, 09:12 صبح
سلام
از آدرس زیر می توانید راهنمای کامل را دریافت نمایید

ساخت dropdown مرتبط (http://www.dotnettips.info/post/1076/%D8%B3%D8%A7%D8%AE%D8%AA-dropdownlist-%D9%87%D8%A7%DB%8C-%D9%85%D8%B1%D8%AA%D8%A8%D8%B7-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-jquery-ajax-%D8%AF%D8%B1-mvc)

سلام
ممنون از لینکی که گذاشتین اما نمی دونم چرا با تغییر دراپ دون اولی دومی هیچی نشون نمی ده؟؟؟
اگه این کدا جایی خطا داره لطفا راهنمایی کنین

aroshanzamir
یک شنبه 14 دی 1393, 09:18 صبح
سلام
ممنون از لینکی که گذاشتین اما نمی دونم چرا با تغییر دراپ دون اولی دومی هیچی نشون نمی ده؟؟؟
اگه این کدا جایی خطا داره لطفا راهنمایی کنین

سلام
می خواهید شما کدی که نوشتید بزارید شاید اشتباهی شده باشه //
دوم Break Point بزارید نتیجه را ببیند داره چی میشه ؟
سوم من خودم از این روش دارم در پروژه هام استفاده می کنم و هیچ مشکلی هم نداره

موفق باشی

homa sadeghi
یک شنبه 14 دی 1393, 10:28 صبح
مدهای ویو





@{
ViewBag.Title = "InsertGrade";
Layout = "~/Views/Shared/_LayoutPage_Other.cshtml";

}
<script >
$('#Classss').change(function () {
jQuery.getJSON('@Url.Action("SelectClass","Teacher")', { id: $(this).attr('value') }, function (data) {
$('#less').empty();
jQuery.each(data, function (i) {
var option = $('<option></option>').attr("value", data[i].Id).text(data[i].BookName);
$("#less").append(option);
});
});
});








</script>


<div class="container">
@Html.DropDownList("ClassList", (SelectList)ViewBag.Class, "-- انتخاب ---", new { id = "Classss" })
@Html.DropDownList("lessonList", (SelectList)ViewBag.Lesson, "-- انتخاب ---", new { id = "less" })
[/LTR_INLINE][/LTR_INLINE][/LTR_INLINE]


کدهای کنترلر




public ActionResult InsertGrade()
{
ViewBag.Class = new SelectList(db.TableGroups, "Id", "Title");
ViewBag.Lesson = new SelectList(db.TableLessons, "Id", "BookName");

return View();
}


public ActionResult SelectClass(int id)
{


var categoris = db.TableLessons.Where(z=>z.Id>127).Select(c => new { c.Id, c.BookName });
return Json(categoris, JsonRequestBehavior.AllowGet);
}

homa sadeghi
یک شنبه 14 دی 1393, 10:30 صبح
روی خط اول اکشن SelectClass بریک پوینت گذاشتم اما روی این خط بریک نمی شه انگار اصلا این اکشن اجرا نمی شه

aroshanzamir
یک شنبه 14 دی 1393, 10:33 صبح
یه سوال این view و controller در یک area قرار داره ؟ مثلا controller و view های بخش ادمین

homa sadeghi
یک شنبه 14 دی 1393, 10:39 صبح
یه سوال این view و controller در یک area قرار داره ؟ مثلا controller و view های بخش ادمین


بله هر دو توی یک Area هستن

homa sadeghi
یک شنبه 14 دی 1393, 10:43 صبح
سلام به دوستان اگر ممکناگه ممکن یه پروژه کامل که فقط دو تا دارپ دون داشته باشه بگذارن که من بتونم اجرا کنم
ممنون از همگی

aroshanzamir
یک شنبه 14 دی 1393, 10:47 صبح
بله هر دو توی یک Area هستن

اگر توی یک area خاص هستند بجای URL.Action بنویس :
name area/controller/action/


/ نام ناحیه / نام کنترولر / نام اکشن

بنوس ..باید جواب بگیری ..

homa sadeghi
یک شنبه 14 دی 1393, 10:56 صبح
ممنون از شما
متوجه نشدم
کد رو دقیق چطور بنویسم؟؟

aroshanzamir
یک شنبه 14 دی 1393, 11:01 صبح
بجای URL.Action بنویس :
"area name/controller name/action name/"
منظورم اینه که آدرس را مستقیم بنویس...area name : نام area
controller name : نام کنترولر:Teacher
action name : نام متد اکشن :SelectClass

homa sadeghi
یک شنبه 14 دی 1393, 11:19 صبح
بجای URL.Action بنویس :
"area name/controller name/action name/"
منظورم اینه که آدرس را مستقیم بنویس...area name : نام area
controller name : نام کنترولر:Teacher
action name : نام متد اکشن :SelectClass


نه متاسفانه دوست من مشکل این قسمت نیست

aroshanzamir
یک شنبه 14 دی 1393, 11:24 صبح
اگر جواب نگرفتید بگید یک مثال آپلود کنم ...

موفق باشی

mohammadreza.najafipour
یک شنبه 14 دی 1393, 11:28 صبح
سلام

تو کدی که گذاشتین آدرس
url: "/admin/jobs/getlist",
مربوط به چه فایلی نمی دونم این آدرس چطور بدم
بعد تو کدای سرور:
returnPartialView(MVC.Admin.Jobs.Views._GetList, model);
این رو هم نمی دونم چی باشه تو پروژه خودم
آدرس Url مربوط به Area که اسمش Admin هستش. Jobs اسم Controller و GetList اسم Action مورد نظر هستش.
چون توی پروژه ی خودم از T4MVC استفاده می کنم
MVC.Admin.Jobs.Views._GetList رو نوشتم. شما کافیه نام PartialView خودتون رو بنوییسید. مثلا: "_GetList"

homa sadeghi
یک شنبه 14 دی 1393, 12:10 عصر
اگر جواب نگرفتید بگید یک مثال آپلود کنم ...

موفق باشی


اگه ممکن مثال آپلود کنین ممنون

aroshanzamir
یک شنبه 14 دی 1393, 14:25 عصر
اگه ممکن مثال آپلود کنین ممنون

سلام دوست من : وقت شما بخیر

مثال پیوست شد

دانلود (http://uplod.ir/zb60kf3gtg3v/WebApplication_.zip.htm)

http://uplod.ir/zb60kf3gtg3v/WebApplication_.zip.htm

موفق و پیروز باشی

aroshanzamir
یک شنبه 14 دی 1393, 15:01 عصر
دو منبع داده داریم که به صورت پیش فرض مقدار دهی شده اند ... شما اطلاعات مورد نظر را از دیتابیس واکشی کنید .....

homa sadeghi
یک شنبه 14 دی 1393, 15:45 عصر
ممنون از شما Aroshanzamir
کاملا درست کار می کنه

aroshanzamir
یک شنبه 14 دی 1393, 15:53 عصر
ممنون از شما Aroshanzamir
کاملا درست کار می کنه

خواهش می کنم
موفق و پیروز باشی