0
<sjg:gridColumn 
    name="progressivo" 
    index="progressivo" 
    title="ID" 
    sortable="false"
    formatter="integer"
    width="40"
    displayTitle="false"
    editable="true"
    hidedlg="true"
    editrules="{edithidden:false}"/>

フィールドを編集できるようにしたくありません。編集ダイアログに表示したくありませんが、アクションに渡したいです。私の理解では、上記のように editable="true", hidedlg="true", editrules="{edithidden:false}" を使用する必要があります。しかし、フィールドはまだ表示され、ダイアログで編集可能です...このコードの何が問題なのか誰でも知っていますか? ありがとう

4

2 に答える 2

1

hidden="true"の属性のリストに表示されません<sjg:gridColumn ...>。また、editrules="{edithidden:false}"の代わりに使用しますeditrules="{edithidden:true }"。おそらくそれが問題です。

つまり、列のプロパティが必要です

hidden: true, editable: true, editrules: { edithidden: true }, hidedlg: true

たとえば、回答に記載されています。

于 2013-04-30T16:25:59.757 に答える
0

あなたには2つの選択肢があると思います。私は独自のカスタム編集オプションを定義することで、この要件に個人的に対応しました。

元:

    ... 
    editable: true, edittype: 'custom', editoptions: { custom_element: readOnlyTextBox, custom_value: readOnlyTextBoxValue } 
    ...

function readOnlyTextBox(value, options) {

    var el = document.createElement("input");
    el.type = "text";
    el.value = value;
    el.disabled = true; // "disabled";
    return el;
} //function readOnlyTextBox(value, options) {

function readOnlyTextBoxValue(elem, operation, value) {
    //console.log('Elem: ' + elem + '  Operation: ' + operation + '  Passed Value: ' + value + '  Value: ' + $(elem).val());        
    if (operation === 'get') {
        return $(elem).val();
    } else if (operation === 'set') {
        $(elem).val(value);
    }
} //function readOnlyTextBoxValue(elem, operation, value) {

もう 1 つのオプションは、独自の編集フォーム ハンドラーを定義し、余分な行項目の値を渡すことです。

        ....
        ondblClickRow: function (rowid) {
            EditCollectionItem(rowid, this)
        }, //ondblClickRow
        ....

function EditCollectionItem (rowid, grid){

    $(grid).jqGrid('editGridRow', rowid,
    {
        viewPagerButtons: false,
        editData: { ExtraDataKey: ExtraDataValue },
        afterShowForm: function (formid) {
        }, //afterShowForm
        afterComplete: function (response) {
        } //afterComplete
    }); //$this.jqGrid('editGridRow
}//function EditCollectionItem (rowid, grid){
于 2013-04-30T12:59:47.207 に答える