PDA

View Full Version : مشکل با EF و Telerik Grid



hakan648
شنبه 03 دی 1390, 15:42 عصر
سلام
من ازکامپوننت Telerik استفاده میکنم ( در MVC ) .
هنگام ارسال مدل به Grid ارور زیر رو میگیرم :

=====


http://up7.iranblog.com/images/zqqv1w1ojyslboe7omho.png

======

PhoneBookController :

public ActionResult Index()
{
PhoneBookContext db = new PhoneBookContext();
return View(db.Contact);
}

Index.cshtml :


@model IEnumerable<Sample.Models.Contact>

@(Html.Telerik().Grid(Model)
.Name("Grid")
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.Image) .ImageHtmlAttributes(new { style = "margin-right:3px" }))
.DataBinding(x =>
{
x.Ajax().Select("_Select", "PhoneBook");
}
)
.DataKeys(keys => keys.Add(c => c.ID))
.Columns(columns =>
{
columns.Bound(o => o.FirstName).Title("نام").Width(100);
columns.Bound(o => o.LastName).Title("نام خانوادگی").Width(200);
columns.Bound(o => o.Mobile).Title("تلفن");
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.Image).I mageHtmlAttributes(new { style = "margin-right:3px" });
commands.Delete().ButtonType(GridButtonType.Image) .ImageHtmlAttributes(new { style = "margin-right:3px" });
}).Width(180);
})
.Editable(editing => editing.Mode(Telerik.Web.Mvc.UI.GridEditMode.PopUp ))
.Sortable(sorting => sorting.Enabled(true))
.Selectable()
.Footer(true)
)


دوستان و استید گرامی لطفا راهنمایی بفرمایید .:قلب:

mehdi.mousavi
یک شنبه 04 دی 1390, 11:01 صبح
سلام.
لطفا به این URL (http://www.telerik.com/community/forums/aspnet-mvc/grid/circular-reference-exception-on-grid-entity-framework.aspx) و این URL (http://www.telerik.com/community/forums/aspnet-mvc/grid/a-circular-reference-was-detected-while-serializing-an-object-of-type.aspx) رجوع کنید.

موفق باشید.

hakan648
چهارشنبه 21 دی 1390, 16:29 عصر
سلام
مشکل حل شد !
احتمالا این خطا به دلیل وجود ارتباط بین این کلاس با کلاس های دیگه بوده .
برای رفع این مشکل باید دقیقا Property های مورد نظر ذکر بشن :

[GridAction]
public ActionResult _Select(long Id)
{
return View(new GridModel<Note>
{
Data = noteService.GetAll().Where(x => x.CategoryId == Id).Select(x => new Note
{
Id = x.Id,
Tags = new List<Tag>(),
Title = x.Title,
Tracking = x.Tracking,
Category = new Category()
})
});
}

mojahed
چهارشنبه 14 تیر 1391, 20:26 عصر
سلام من هم یک مشکل دارم میشود کمکم کنید؟

mojahed
پنج شنبه 15 تیر 1391, 12:47 عصر
سلام دوستان
من میخواستم که توسط جی کویری و ایجاد چند تا تکس باکس این امکان را برای کاربر فراهم کنم که خودش بتواند گراید تلکریک را فیلتر کند توی نت با این کود برخورد کردم اما مشکل این هست که من چند تا فیلد برای جستجو دارم و کاربر هر دفعه امکان دارد در یک فیلد جستجو کند و فیلدهای که خالی هستند هم جزء شرط قرار میگرند من میخواهم که فیلدهای که مقدارش وارد نشده جزء فیلترینگ نیاید .

<% using (Html.Configurator("Filter by ...")
.PostTo("Filtering", "Grid")
.Begin())
{ %>
<p>
<label for="startsWith"><strong>Contact Name</strong> starts with:</label>
<%= Html.TextBox("startsWith", "Paul") %>
</p>
<ul>
<li><%= Html.CheckBox("showOrOption", true, "show <strong>OR</strong>
option in the filter menu")%></li>
</ul>
<button class="t-button" type="submit">Apply</button>
<% } %>
<%= Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.OrderID).Width(120);
columns.Bound(o => o.Customer.ContactName).Width(200);
columns.Bound(o => o.ShipAddress);
columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(100);
})
.DataBinding(dataBinding => dataBinding.Ajax().Select("_Filtering", "Grid"))
.Pageable()
.Sortable()
.Filterable(filtering => filtering
.ShowOrOption((bool)ViewData["showOrOption"])
.Filters(filters => filters
.Add(o => o.Customer.ContactName).StartsWith((string)ViewDat a["startsWith"])
))
%>
</asp:content>