PDA

View Full Version : سوال: اضافه کردن یک مدل جدید و اتصال به dropDownlist



crazy_1892
دوشنبه 19 تیر 1391, 18:43 عصر
سلام شاید سوالم برای شما دوستان عزیز خیلی مبتدی باشه

من یک صفحه دارم که تمام اخبارم را لیست میکنم و کد های مربوطه به شکل زیر است
(کد های مربوط به صفحه index)




@model IEnumerable<AZADSYSTEM.Areas.Admin.Models.Tbl_News>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Master.cshtml";
}
@foreach (var item in Model)
{
<div class="DivNewsShowList">

<div class="DivShowNewsSub">
@Html.DisplayFor(modelItem => item.Fld_Sub)
</div>
<div class="DivShowNewsDate">

@AZADSYSTEM.Content.Classes.DateConvertor.ToShamsi (Convert.ToDateTime(Html.DisplayFor(modelItem => item.Fld_Date).ToString()))
</div>
<div class="DivShowNewsDes">
@Html.DisplayFor(modelItem => item.Fld_Descrip)
</div>
<div class="DivShowNewsClick">
<a href="/News/Show/@item.Fld_Id">متن کامل...</a>
</div>
</div>


حالا می خوام یک dropdownlits به این صفحه اضافه کنم و به جدول خبری متصل کنم با تغییر گروه خبری لیست خبر ها هم فیلتر بشه!!!
لطفا کمک کنید اگه به صورت ajax توضیح بدید برام بهتره ممنون پیشاپیش

NIK
سه شنبه 20 تیر 1391, 10:35 صبح
شما کدهایی که اینجا نوشتید رو به یک partial view انتقال بدید و اون پارشال ویو رو اینجا لود کنید.
بعد به کمک آموزشهایی که در تاپیک قبلی درباره Ajax براتون گذاشتم، میتونید این پارشال ویو رو به ازای تغییر مقدار dropdownlist دوباره لود کنید.

crazy_1892
سه شنبه 20 تیر 1391, 15:43 عصر
ببخشید حالا که بیان کردید کن مشکلی که با پارشال دارم اینه که وقتی 3 تا پارشال در یک masterpage لود میکنم نمیشه بازم به مدل سازی گیر میده

crazy_1892
سه شنبه 20 تیر 1391, 21:36 عصر
سلام شاید سوالم برای شما دوستان عزیز خیلی مبتدی باشه

من یک صفحه دارم که تمام اخبارم را لیست میکنم و کد های مربوطه به شکل زیر است
(کد های مربوط به صفحه index)




@model IEnumerable<AZADSYSTEM.Areas.Admin.Models.Tbl_News>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Master.cshtml";
}
@foreach (var item in Model)
{
<div class="DivNewsShowList">

<div class="DivShowNewsSub">
@Html.DisplayFor(modelItem => item.Fld_Sub)
</div>
<div class="DivShowNewsDate">

@AZADSYSTEM.Content.Classes.DateConvertor.ToShamsi (Convert.ToDateTime(Html.DisplayFor(modelItem => item.Fld_Date).ToString()))
</div>
<div class="DivShowNewsDes">
@Html.DisplayFor(modelItem => item.Fld_Descrip)
</div>
<div class="DivShowNewsClick">
<a href="/News/Show/@item.Fld_Id">متن کامل...</a>
</div>
</div>


حالا می خوام یک dropdownlits به این صفحه اضافه کنم و به جدول خبری متصل کنم با تغییر گروه خبری لیست خبر ها هم فیلتر بشه!!!
لطفا کمک کنید اگه به صورت ajax توضیح بدید برام بهتره ممنون پیشاپیش


موفق شدم اطلاعات زیر را از یک sample خارجی به صورت زیر لود کنم ولی مشکل اینحاست که وقتی dropdownlist را فیلتر می کنم اطلاعات جدول زیر مجموع در یک dropdownlist دیگه لود میشه
حالا من میخوام به جای لود اطلاعات حدول دوم به صورت کدهای بالا لود بشه

کد های قسمت view و controller را در پایین نوشتم

viwe:




@model AZADSYSTEM.Areas.Admin.Models.AzadSysEntities
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Master.cshtml";
}
@Html.DropDownListFor(Model => Model.Tbl_NewsGroup, new SelectList(ViewBag.NewsGroup as System.Collections.IEnumerable, "Fld_Id", "Fld_NAme"),
"انتخاب گروه خبری", new { id = "ddlNewsGroup" })
@Html.DropDownListFor(Model => Model.Tbl_News, new SelectList(Enumerable.Empty<SelectListItem>(), "Fld_Id", "fld_Sub"),
"انتخاب خبر", new { id = "ddlNews" })



<script type="text/javascript">
$(document).ready(function () {
$("#ddlNewsGroup").change(function () {
var idModel = $(this).val();
$.getJSON("/News/LoadNEWS", { id: idModel },
function (LoadingData) {
var select = $("#ddlNews");
select.empty();
select.append($('<option/>', {
value: 0,
text: "نمایش اخبار"
}));
$.each(LoadingData, function (index,itemData) {

select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
});
});
});

</script>




Controller:


private AzadSysEntities db = new AzadSysEntities();

//
// GET: /NEWS/


public ViewResult Index()
{
ViewBag.NewsGroup = db.Tbl_NewsGroup.ToList();
ViewBag.News = db.Tbl_News.ToList();

var tbl_news = db.Tbl_News.Include("Tbl_admin").Include("Tbl_NewsGroup");
return View(tbl_news.ToList());
}

//
// GET: /NEWS/Details/5
private IList<Tbl_News> GetNews(int id)
{
return db.Tbl_News.Where(m => m.Fld_GroupNews == id).ToList();
}
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult LoadNEWS(string id)
{
var NewsList = this.GetNews(Convert.ToInt32(id));

var NewsData = NewsList.Select(m => new SelectListItem()
{
Text = m.Fld_Sub,
Value = m.Fld_Id.ToString(),

});

return Json(NewsData, JsonRequestBehavior.AllowGet);
}