PDA

View Full Version : kendo ui Read



javadnaby
سه شنبه 04 فروردین 1394, 15:14 عصر
سلام
چمد روز پیش ای سوال را مطرح کردم.
من دارم با kendo ui و asp.net mvc کار میکنم می خوام در قسمت read دیتا سورس درخواست با پارامتر ارسال کنم و خروجی را هم در گرید کندو نمایش دهم .
ممنون میشم رانمایی بفرمایید.

یکی از دوستان این جواب را داد
var ds = new kendo.data.DataSource({ pageable: false,
transport: {
read: function(options) {
$.ajax({
type: 'POST',
dataType: "json",
contentType: "application/json",
url: "url controller ro bezar",
data: JSON.stringify({ id:15 }),
success: function(result) {
options.success(result);
}
});
}
},
schema: {
parse: function(data) {
return data;
},
model: {
id: "Id"
},
total: "Total",
data: "Data"
},
serverPaging: false,
serverSorting: false,
change: function(e) {
}
});

$("#" + idName).kendoGrid({
dataSource: ds
navigatable: true,
sortable: true,
scrollable: true,
selectable: "row",
pageable: {
numeric: false,
pageSizes: false,
refresh: false,
previousNext: false,
messages: {
isTrue: "False",
display: "تعداد رکورد: {2}",
empty: "اطلاعاتی موجود نیست"
}
},
columns: [
{
field: "namefield",
title: "عنوان فیلد",
width: "100px;",
formatString : "{0:n0}"
}

]



});





این کد کار منا راه انداخت اون موقع و تشکر میکنم اما با این روش اصلا دکمه آپدیت من در پاپاپ ویندوز کار نمی کند.و وقتی از روش معمولی read استفاده می کنم.درست جواب میده.
حالا من از شما اساتید یک تکه راهنمایی می خوام که کلا همه اعمال جواب دهد.Raadوcreateوdeleteوupdate
ممنون از شما دوستان گرامی

javadnaby
سه شنبه 04 فروردین 1394, 20:41 عصر
کسی نیست جواب ما را بده؟

mehdin69
سه شنبه 04 فروردین 1394, 21:32 عصر
بیا عزیز اول تو Controller صفحه Index رو صدا بزن


public ActionResult Index()
{
return View();
}

بعد این کد واسه View


@model IEnumerable<CarSite.Models.Brand>

@(Html.Kendo().Grid<CarSite.Models.ViewModels.BrandVM>()
.Name("grid_Brand")
.Columns(columns =>
{
columns.Command(command =>
{
command.Custom("Edit").Text(" ").HtmlAttributes(new DialogOpenerOption() { gridField = "Id_Brand", gridid = "grid_Brand", CLASS = "edit_button", Target = Url.Action("Edit", "Brand") }.Dic());
command.Custom("Delete").Text(" ").HtmlAttributes(new DialogOpenerOption() { gridField = "Id_Brand", gridid = "grid_Brand", CLASS = "delete_button", Target = Url.Action("Delete", "Brand") }.Dic());
}).Width(60);

columns.Bound(p => p.Name).Title("نام برند");
columns.Bound(p => p.Order).Title("ترتیب نمایش");
})
.Groupable()
.Sortable(sort => sort.SortMode(GridSortMode.MultipleColumn))
.Scrollable(scroll => scroll
.Enabled(true)
.Height(600)
)
//.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Filterable()
.Selectable(selectable => selectable.Mode(GridSelectionMode.Single))
.Resizable(resize => resize.Columns(true))
.Pageable(page => page.ButtonCount(20)
.Info(true)
.Refresh(true)
.PageSizes(new int[] { 15, 25, 50, 100 })
.Numeric(true)
.PreviousNext(true)
.Input(true)
)
.Events(e => e.DataBound("onRowBound"))
.HtmlAttributes(new { style = "height:600px;" })
.RowAction(row => row.HtmlAttributes.Add("data-id", row.DataItem.Id_Brand))
.DataSource(dataSource => dataSource
.Ajax()

.PageSize(20)
.Read(read => read.Action("IndexData", "Brand"))
)
)




و دوباره توی Controlller دستور select


public ActionResult IndexData([DataSourceRequest]DataSourceRequest request)
{

return Json(GetData().ToDataSourceResult(request));
}

private static IEnumerable<BrandVM> GetData()
{
CarSiteEntities db = new CarSiteEntities();
return (from brand in db.Brand
select new BrandVM()
{
Id_Brand = brand.Id_Brand,
Name = brand.Name,
Order = brand.Order
});
}


موفق باشی

javadnaby
سه شنبه 04 فروردین 1394, 22:03 عصر
ممنون ولی من که تو نمونه کد خودم گفته بودم از قسمت جاوااسکریپتی دارم استفاده می کنم نه از Wraper ها.

javadnaby
چهارشنبه 05 فروردین 1394, 09:24 صبح
دوستان اون مشکلم حل شد.ایشالا ی روز تو ی مطلب واسه آموزش میزارم شاید به درد کسی بخوره.
اما الام ی مشکل دیگه دارم و اون این که من در گرید kendo ui یک button اضافه کردم با عنوان مشاهده بیشتر میخوام وقتی که روی این کلیک کردم آی رکورد جاری را به عنوان پارامتر با read به سمت سرور بفرستم.اگز دوستان می تونند کمک کنند ممنون میشم.در ضمن من از قسمت جاوااسکریپتی کندو استفاده دارم میکنم.

javadnaby
چهارشنبه 05 فروردین 1394, 09:55 صبح
کسی نیست یک راهنمایی کنه؟

RIG000
چهارشنبه 05 فروردین 1394, 10:49 صبح
کسی نیست یک راهنمایی کنه؟
دوست عزیز از Kendo ui For Asp.Net Mvc استفاده کن. خودت رو به دردسر ننداز... همون طور که آقای مهدیان نوشتن و ....
در عمل اگه همیشه داری mvc کار میکنی kendo ui for mvc رو یاد بگیر.... اینجوری دیگه گیر نمیکنی مثل الان. چون متد واسه انجام کار داری و overload ها رو میبینی و ...

RIG000
چهارشنبه 05 فروردین 1394, 10:52 صبح
.Read(read => read.Action("Products_Read", "Grid", new { name = "test", id = 2 }))

public ActionResult Products_Read([DataSourceRequest] DataSourceRequest request, string name, int id) {...}

RIG000
چهارشنبه 05 فروردین 1394, 10:56 صبح
You Can Try This

http://stackoverflow.com/questions/23222867/send-additional-parameter-in-kendo-grid-read-action