1
我想將可編輯的kendo網格作爲局部視圖控件在需要時多次使用。在MVC的局部視圖中製作可編輯的Kendo網格
我有多地址的客戶和員工 所以我想在部分視圖中爲地址製作可編輯的劍道網格,以便在員工和客戶中使用它。
我的劍道電網局部視圖是
@model AddressesModel
@using Kendo.Mvc.UI
@{
var prefix = ViewData.TemplateInfo.HtmlFieldPrefix;
var propertyPrefixName = "";
if (string.IsNullOrEmpty(prefix))
{
propertyPrefixName = nameof(AddressesModel.AddressesList);
}
else
{
propertyPrefixName = prefix + "." + nameof(AddressesModel.AddressesList);
}
var cityId = nameof(AddressModel.CityId);
var email = nameof(AddressModel.Email);
}
@(Html.Kendo().Grid(Model.AddressesList)
.Name("AddressGrid")
.ToolBar(tools => tools.Create().Text(GlobalResources.Add))
.Editable(editable
=> editable.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))
.Columns(columns =>
{
columns.Bound(p => p.CityId).ClientTemplate("#= " + cityId + " #" +
"<input type='hidden' name='" + propertyPrefixName + "[#= index(data)#]." + cityId + "' value='#= " + cityId + " #' />"
);
columns.Bound(p => p.Email).ClientTemplate("#= " + email + " #" +
"<input type='hidden' name='" + propertyPrefixName + "[#= index(data)#]." + email + "' value='#= " + email + " #' />"
);
columns.Command(command => command.Destroy()).Width(20).Title(GlobalResources.Delete);
})
.DataSource(dataSource => dataSource.Ajax()
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.Id).Editable(false);
})
.ServerOperation(false)
)
)
<script>
function index(dataItem) {
var data = $("#AddressGrid").data("kendoGrid").dataSource.data();
return data.indexOf(dataItem);
}
</script>
和員工的看法,我用這樣的
@Html.Partial("_AddressesGrid", Model.Addresses, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix =nameof(CreateEmployeeModel.Addresses)} })
,它不編輯!
請幫忙,我怎麼可以在局部視圖中編輯kendo網格!
請注意劍道網格工作正常,如果我把它放在員工視圖沒有局部視圖。
顯然,Kendo小部件喜歡在部分中使用[unique id](http://docs.telerik.com/kendo-ui/troubleshoot/troubleshooting-common-issues#creating-multiple-widgets-throws-javascript-errors)。請參閱[這個答案](http://stackoverflow.com/a/30413163/3585500)。 – ourmandave
我在視圖中使用一個網格,我的問題是編輯incell時出現錯誤 – Jala