با عرض سلام خدمت دوستان عزیز
من با استفاده از دستور اسکیوال گرید ویو داینامیک ایجاد می کنم و می خواهم درون هر سلول آن دراپ دانی با داده متفاوت ایجاد کنم و داده هر سلول هم از تابعی در کنترلر با استفاده از دستور اس کیوال واکشی می شود.
Asp.net mvc 4 + telerik kendo+ sql server
----------------view-----------------------------
@(Html.Kendo().Grid<dynamic>()
.Name(item1.HideCtrlName)
.Pageable(a => a.Messages(b => b.ItemsPerPage("")))
.Scrollable()
.Columns(columns =>
{
foreach (var item2 in Model.modelGrid)
{
if (item2.PropertyGridNumber == item1.HideCtrlTypeValue)
{
if (item2.PropertyFieldTypeValue.ToUpper() == "TEXTBOX")
columns.Bound(item2.PropertyFieldName).Title(item2.PropertyFieldTitle).HeaderHtmlAttributes(new { @style = "font-weight:bold; text-align:center;" })
.HtmlAttributes(new { @class = "edit-mode", @style = "text-align:center; direction: ltr;" }).Width((int)item2.PropertyFieldWidth)
.Groupable(item2.PropertyFieldGroupable).Sortable(item2.PropertyFieldSortable).Filterable(item2.PropertyFieldFilterable);
else if (item2.PropertyFieldTypeValue.ToUpper() == "DROPDOWNLIST")
{
columns.Bound(item2.PropertyFieldTitle).ClientTemplate(
Html.Kendo().DropDownList()
.Name(item1.HideCtrlName)
.Text("لطفا انتخاب کنید ")
.HtmlAttributes(new { style = "width: 140px", typeValue = item1.HideCtrlTypeValue })
.DataTextField("Name")
.DataValueField("ID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GridView1_RowDataBound", "Home", new { CtrlName = "ProdPSVValuePSCIdF" });
});
})
.AutoBind(true)
.ToClientTemplate().ToHtmlString()
)
.HeaderHtmlAttributes(new { @style = "font-weight:bold; text-align:center;" }).HtmlAttributes(new { @style = "text-align:center;" })
.Width((int)item2.PropertyFieldWidth).Groupable(item2.PropertyFieldGroupable).Sortable(item2.PropertyFieldSortable).Filterable(item2.PropertyFieldFilterable);
}
}
}
})
.Reorderable(reorderable => reorderable.Columns(Model.modelGrid.First().PropertyGridReorderable))
.Pageable()
.Filterable(filterable => filterable
.Operators(operators => operators
.ForString(str => str.Clear()))
.Operators(operators => operators
.ForNumber(str => str.Clear()))
.Groupable(g => g.Messages(messages => messages.Empty("")))
.Sortable()
.Groupable()
.ColumnMenu()
.Navigatable()
.HtmlAttributes(new { @class = "GridView", style = "height: " + Model.person.Where(p => p.HideCtrlType.ToUpper() == "GRIDVIEW").Select(y => y.HideCtrlHeight).First() + " width: " + Model.person.Where(p => p.HideCtrlType.ToUpper() == "GRIDVIEW").Select(y => y.HideCtrlWidth).First() + " " })
.Pageable(pageable => pageable
.Info(false)
.PageSizes(new[] { Model.modelGrid.First().PropertyGridPageSize }))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Read(read => read.Action("Customers_Read", "Home", new { CtrlName = item1.HideCtrlName }))
)
)
-------------------CONTROLLER--------------------------
public ActionResult Customers_Read([DataSourceRequest] DataSourceRequest request, string CtrlName)
{
var sqlcmd = DataRepository.HideProvider.GetAll().Where(p => p.HideCtrlName == CtrlName).First().HideCtrlFormul;
dbConnect db = new dbConnect();
DataTable command = db.selectCmd(sqlcmd);
return Json(command.ToDataSourceResult(request));
}
//note: i use of select in sqlserver for add GridView as dynamic in view
//note: من استفاده می کنم از دستورات اسکیوال برای ساخت گریدویو داینامیک در ویو
public JsonResult GridView1_RowDataBound(string CtrlName)
{
string sqlcmd = DataRepository.PropertyProvider.GetAll().Where(p => p.PropertyFieldName == CtrlName).Select(y => y.PropertyProcedure).First();
dbConnect db = new dbConnect();
DataTable command = db.selectCmd(sqlcmd);
var results2 = from row in command.AsEnumerable()
select new
{
ID = row.Field<int>("ID"),
Name = row.Field<string>("Name"),
Active = row.Field<string>("Active"),
GroupName = row.Field<string>("GroupName")
};
return Json(results2, JsonRequestBehavior.AllowGet);
}
//note: i use of select of sqlserver for data diffrent in any dropdown in any cell in gridview
//note: من استفاه می کنم از دستور اسکیوال برای ساخت داده های دراپ دان درون هر سلول گریدویو البته داده هر دراپ دان متفاوت می باشد
how to use Dropdown with data diffrent in any cell Gridview as dynamic with sqlserver in asp.net mvc4
با تشکر فراوان از محبت دوستان