ページにいくつかの列を持つ剣道UIグリッドがあります。ここで、行番号を示す列を追加したいと思います。これを行うにはどうすればよいですか?ありがとう。
26167 次
8 に答える
26
変数を初期化し、列に次のように表示しますtemplate: "#= ++record #"
コードは次のとおりです。
var record = 0;
$("#grid").kendoGrid({
dataSource: {
data: [{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" },{ foo: "foo" }, { foo: "foo" }, { foo : "foo1" }],
pageSize: 10
},
sortable: true,
columns: [ {
title: " ",
template: "#= ++record #",
width: 30
}, { field: "foo" }],
pageable: true,
dataBinding: function() {
record = (this.dataSource.page() -1) * this.dataSource.pageSize();
}
});
于 2013-06-29T08:53:51.473 に答える
7
変数を定義する必要はありません。データバインドされたイベントからヘルプを得ることができます:
$("#grid").kendoGrid({
sortable: true,
dataSource: [{
name: "Jane Doe",
age: 30
}, {
name: "John Doe",
age: 33
}],
columns: [{
field: "name"
}, {
field: "age"
}, {
field: "rowNumber",
title: "Row number",
template: "<span class='row-number'></span>"
}],
dataBound: function () {
var rows = this.items();
$(rows).each(function () {
var index = $(this).index() + 1
+ ($("#grid").data("kendoGrid").dataSource.pageSize() * ($("#grid").data("kendoGrid").dataSource.page() - 1));;
var rowLabel = $(this).find(".row-number");
$(rowLabel).html(index);
});
}
});
于 2015-11-12T14:01:39.540 に答える
7
Razorの場合、実際に番号も表示する必要があります:(コメントするのに十分なポイントがありません)
グリッドの上:
@{int counter = 1;}
列定義内:
columns.Template(@<text>
<span>@counter @{ counter++; }</span>
</text>).Title("#");
于 2013-10-10T20:45:59.640 に答える
4
YD1m のテンプレートは私にとってはうまくいきませんでしたstring
。したがって、次のように実装する必要がありました。
columns.Template(@<text>@((long)counter++)</text>)
于 2013-07-16T14:20:01.197 に答える
3
asp.net mvc ラッパーの場合、次のようなものを使用する必要があります。
@{
var counter = 1;
}
@( Html.Kendo().Grid<Types>()
.Name("grid")
.Columns(columns =>
{
// Define a template column with row counter
columns.Template(@<text>@counter++</text>);
// Define a columns from your data set and set a column setting
columns.Bound(type => type.id);
columns.Bound(type=> type.name).Title("Name");
// add more columns here
})
)
于 2013-06-29T08:55:32.063 に答える
0
必要に応じて、編集可能なグリッドの行番号
$(document).ready(function(){
$("#grid").kendoGrid({
dataSource: {
data: null,
schema: {
model: {
id: "register_No",
fields: {
register_No: {editable: true},
myEditableField: {editable: true},
}
}
}
},
edit:function(e){
var fields= $('input[name="register_No"]');
fields.attr('disabled', true);
fields.removeClass('k-input k-textbox');
fields.addClass('none');
//create this class and set border and background none
$('input[name="myEditableField"]').focus();
},
save:function(e){
var total=e.sender.dataSource.data().length;
if(e.model.register_No==""){
e.model.register_No=total;
}
},
remove:function(e){
var grid = $("#grid").data("kendoGrid");
var todos=grid.dataSource.data();
var id_actual=e.model.register_No;
var count=1;
for(var i=0;i<todos.length;i++){
if(todos[i].register_No!==id_actual){
var data = grid.dataSource.at(i);
data.set("register_No", count);
count++;
}
}
}
, height: 280,
toolbar: ["create"],
scrollable: true,
editable: {mode:"inline", createAt: "bottom", confirmation: true
}
,
columns: [
{field: "register_No",title: "No", width: 30},
{field: "myEditableField", title: "Any Field", width: 120},
{field: "options", command: ["edit", "destroy"], width: 200}
]
});
});
<div id="grid"></div>
于 2016-06-09T17:55:47.350 に答える
0
Ehsan Mirsaedi の優れた回答に基づいて、1 から始まる行番号の代わりに 0 から始まるインデックスを割り当て、グリッドがグループ化されている場合はグループ ヘッダーをスキップし、グリッドがページングされていない場合を処理するこのバージョンを思い付きました。
これらのインデックスは、非表示の入力を含むテンプレートを各列に追加して、フォーム全体と共にグリッドの値を送信できるようにするために必要でした。
それは十分に関連しており、スレッドに追加する価値があると思います...
コード:
var theGrid = $("#grid").data("kendoGrid");
var rows = this.items().filter(function (index, item) {
return $(item).hasClass("k-grouping-row") == false;
});
$(rows).each(function () {
var index = $(this).index();
//prevent group header rows from incrementing index
if (theGrid.dataSource.options.group != null && theGrid.dataSource.options.group.length > 0)
index -= $(this).prevAll("#grid tr.k-grouping-row").length;
//adjust indices for current page
if (theGrid.options.pageable == true)
index += theGrid.dataSource.pageSize() * (theGrid.dataSource.page() - 1);
//add the value to the grid's data object
theGrid.dataItem(this).rowNumber = index;
//and update the grid's HTML
var rowLabel = $(this).find(".row-number");
$(rowLabel).html(index);
});
于 2016-04-19T08:06:00.877 に答える