2

だから私はjsGridを使ってカレンダーグリッドを作る初心者です。これは http://i.stack.imgur.com/gU4V9.png

私はヘッダーフィールドを次のように作成しました:

var headerFields = [{ 
    name: "name",
    title: "", type: "text", 
    width: 60 
}];

for(var i = 1; i <= 31; i++){
    headerFields[i] = { 
        name: String(i), 
        title: String(i), 
        type: "text", 
        width: 20, 
        sorting: false, 
        inserting: false
     };
}

headerFields.push({ type: "control", width: 24, editButton: false });

そして、それは jsGrid 自体で次のように初期化されます。

$("#jsGrid").jsGrid({
    ...
    fields: headerFields,
    ...
 }

すべての月が31日であることを除けば、これは非常に非コーシャな方法だと思います。特定の日までにセルを参照したい場合、「item [17]」のように行われるため、あいまいです。 「item.day(17)」のような別のレイヤーが必要ですが、それを適用する方法を理解するのに苦労しています。

何かご意見は?

4

2 に答える 2

0

Momentを使用している場合、これは私にとってはうまくいきました:

        var DateField = function (config) {
            jsGrid.Field.call(this, config);
        };

        DateField.prototype = new jsGrid.Field({
            sorter: function (date1, date2) {
                return moment(date1) - moment(date2);
            },
            itemTemplate: function (value) {
                return moment(value).locale('en').format('YYYY-MM-DD HH:mm:ss');
            },
        });

        jsGrid.fields.date = DateField;

編集と挿入の機能は必要ないので無視しました。

于 2021-03-30T10:43:11.347 に答える