我正在尝试为其中一个kendo grid列设置宽度。 这里是简单的代码:
@(Html.Kendo()
.Grid<MyObject>()
.Name("Name")
.TableHtmlAttributes(new { style = "height: auto;" })
.Columns(c => {
c.Bound(m => m.ObjectId).Hidden();
c.Bound(m => m.Type).Title()
//Bound other fields
if (Model.Property)
{
c.Bound(m => m.Price).Title()
.HeaderHtmlAttributes(new {title = "Price"});
//Here I want to change the width of my first column
c.Container.Columns.Where(x => x.Title == "Type").FirstOrDefault.Width(200);
}
})
.Scrollable(src => src.Height(261))
.DataSource(ds => ds
.Ajax()
.Events(e => e.Error("app.ui.kendo.onGridError").RequestEnd("app.ui.project.onRequestEnd"))
.Read(r => r
.Action("Action", "Controller", new { Id = @Model.Id })
.Type(HttpVerbs.Get))))
问题在于编译器说“预期方法,委托或事件”。在绑定列之后是否有其他方法可以更改宽度?
答案 0 :(得分:1)
在绑定之后更改它
1)在剑道网格中附加一个事件,如
@(Html.Kendo().Grid<SomeModel>()
.Name(Model)
.Events(e => e.DataBound("some_name"))
2)在Jquery
function some_name(e) {
// Access the column here to set the width
$('#SomeField').width(percentage)
}
答案 1 :(得分:0)
此问题已由Telerik自己回答过。你去吧! http://www.telerik.com/forums/change-column-widths-after-grid-created
它看起来没有开箱即用,或者至少在2013年是如此。我个人只是从网格中获取选项,更改所需列的宽度,然后将这些选项重新应用到网格中。
我的工作场所使用Kendo处理所有UI,这可能是我在数据绑定后编辑多个选项的最简单方法,即使它们没有通过Kendo方法公开。
下面的代码只是一个例子,可能错过了一些东西,但应该让你开始。
var grid = $("#Name").data("kendoGrid");
var opts = grid.options;
opts.columns[0].width = "1000px";
grid.setOptions(y);
我不相信这需要网格刷新,但它可能会。另外我相信你可以使用与列相关联的字段的字符串名称而不是索引。