Dear Sir:
I would like to ask a question in kendo controls
when
I filter grid the dropdown auto post back and it doesn't stop on
selected value that i have chosen, so please I need your advice in it.
and here's my Code:
Razor:
@using Kendo.Mvc.UI;
@model IEnumerable<OfferEntityFrameworkDB.OfferDetail>
@{
ViewBag.Title = "List";
}
<h2>List</h2>
<div>
@Html.Label("Language:")
</div>
<div>
@(Html.Kendo().DropDownList()
.Name("ddlLang")
.OptionLabel("Please Select Language ...")
.HtmlAttributes(new { style = "width:200px;" })
.DataTextField("Name")
.DataValueField("ID")
.DataSource(source => source
.Custom()
.Transport(transport => transport
.Read(read =>
{
read.Url("ComboRead");
})).ServerFiltering(false)
)
.AutoBind(false)
.Events(e =>
{
e.Change("onChange");
})
)
</div>
<br />
<br />
<div>
@(Html.Kendo().Grid((IEnumerable<OfferEntityFrameworkDB.OfferDetail>)ViewData["OfferData"])
.Name("grdOffers")
.Columns(columns =>
{
columns.Bound(o => o.OfferID).Hidden();
columns.Bound(o => o.LanguageID).Hidden();
columns.Bound(o => o.Name);
columns.Bound(o => o.Brief);
columns.Bound(o => o.Desc);
columns.Template(c => @Html.ActionLink("Edit", "Edit", new { langId =
c.LanguageID, offerId = c.OfferID })).Title("Edit");
columns.Template(c => @Html.ActionLink("Delete", "Delete", new {
langId = c.LanguageID, offerId = c.OfferID })).Title("Delete");
})
)
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$(document).ready(function () {
$("#ddlLang").change(function () {
var langId = $("#ddlLang").data().kendoDropDownList.value();
alert(langId);
var grid = $("#grdOffers").data().kendoGrid;
if (langId != null || langId != new Guid("")) {
grid.dataSource.filter({ field: "LanguageID", operator: "eq", value: langId });
}
else {
grid.dataSource.filter({});
};
});
});
</script>
}
Controller:
public ActionResult List()
{
List<OfferDetail> lstOfferDetails = db.OfferDetails.ToList();
ViewData["OfferData"] = lstOfferDetails;
return View(ViewData["OfferData"]);
}
public JsonResult ComboRead()
{
var lstlanguages = from lan in db.Languages select new { Name = lan.Name, ID = lan.ID };
return Json(lstlanguages, JsonRequestBehavior.AllowGet);
}
even sever Controller not working properly when I add data bind to server in the grid.
List<OfferDetail> lstoffers;
[HttpPost]
public JsonResult GetOffersByLangID(Guid? langId)
{
lstoffers = (from o in db.OfferDetails where o.LanguageID == langId select o).ToList();
return Json(lstoffers, JsonRequestBehavior.AllowGet);
}
Best Regards,
I would like to ask a question in kendo controls
when
I filter grid the dropdown auto post back and it doesn't stop on
selected value that i have chosen, so please I need your advice in it.
and here's my Code:
Razor:
@using Kendo.Mvc.UI;
@model IEnumerable<OfferEntityFrameworkDB.OfferDetail>
@{
ViewBag.Title = "List";
}
<h2>List</h2>
<div>
@Html.Label("Language:")
</div>
<div>
@(Html.Kendo().DropDownList()
.Name("ddlLang")
.OptionLabel("Please Select Language ...")
.HtmlAttributes(new { style = "width:200px;" })
.DataTextField("Name")
.DataValueField("ID")
.DataSource(source => source
.Custom()
.Transport(transport => transport
.Read(read =>
{
read.Url("ComboRead");
})).ServerFiltering(false)
)
.AutoBind(false)
.Events(e =>
{
e.Change("onChange");
})
)
</div>
<br />
<br />
<div>
@(Html.Kendo().Grid((IEnumerable<OfferEntityFrameworkDB.OfferDetail>)ViewData["OfferData"])
.Name("grdOffers")
.Columns(columns =>
{
columns.Bound(o => o.OfferID).Hidden();
columns.Bound(o => o.LanguageID).Hidden();
columns.Bound(o => o.Name);
columns.Bound(o => o.Brief);
columns.Bound(o => o.Desc);
columns.Template(c => @Html.ActionLink("Edit", "Edit", new { langId =
c.LanguageID, offerId = c.OfferID })).Title("Edit");
columns.Template(c => @Html.ActionLink("Delete", "Delete", new {
langId = c.LanguageID, offerId = c.OfferID })).Title("Delete");
})
)
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$(document).ready(function () {
$("#ddlLang").change(function () {
var langId = $("#ddlLang").data().kendoDropDownList.value();
alert(langId);
var grid = $("#grdOffers").data().kendoGrid;
if (langId != null || langId != new Guid("")) {
grid.dataSource.filter({ field: "LanguageID", operator: "eq", value: langId });
}
else {
grid.dataSource.filter({});
};
});
});
</script>
}
Controller:
public ActionResult List()
{
List<OfferDetail> lstOfferDetails = db.OfferDetails.ToList();
ViewData["OfferData"] = lstOfferDetails;
return View(ViewData["OfferData"]);
}
public JsonResult ComboRead()
{
var lstlanguages = from lan in db.Languages select new { Name = lan.Name, ID = lan.ID };
return Json(lstlanguages, JsonRequestBehavior.AllowGet);
}
even sever Controller not working properly when I add data bind to server in the grid.
List<OfferDetail> lstoffers;
[HttpPost]
public JsonResult GetOffersByLangID(Guid? langId)
{
lstoffers = (from o in db.OfferDetails where o.LanguageID == langId select o).ToList();
return Json(lstoffers, JsonRequestBehavior.AllowGet);
}
Best Regards,