1

Javascript を使用して Ext.net の GridPanel から値を取得しようとしました。Hanlder を使用して Javascript 関数で gaSelectBind() を呼び出しましたが、[オブジェクト NodeList] が返されました。

<script type="text/javascript">
    var nodelist;
    nodelist = document.getElementsByName('grid-device-name')
    function gaSelectBind() {
        App.ga_device_name.setValue(nodelist);
    };
</script>

これは私のデータオブジェクトです:

DateTime now = DateTime.Now;
    var dataDevice = new object[]
            {
                new object[] {null, false , "35 RUTA", now, null , null },
                new object[] {null, false , "770SBW", now, null , null },
                new object[] {null, false , "CORSA", now, null , null },
                new object[] {null, false , "icon2010", now, null , null },
                new object[] {null, false , "MouGL", now, null , null },
                new object[] {null, false , "mt90", now, null , null },
                new object[] {null, false , "MT90-Renny", now, null , null },
                new object[] {null, false , "MVT600-Fuel1111", now, null , null }
            };

テキストフィールドを使用して値を設定します

itemchildpan1.Add(Html.X().TextField().FieldLabel("Device Name").ID("ga_device_name"));

私のグリッドパネル:

.GridPanel().Title("Device")
.Store(store =>
{//Load store from Data Object----
    store.Add(Html.X().Store().ID("Storer1")
                    .AutoLoad(true)
                    .Model(model => model.Add(Html.X().Model()
                        .Fields(fields =>
                        {
                            fields.Add(Html.X().ModelField().Name("grid-alarm"));
                            fields.Add(Html.X().ModelField().Name("grid-check"));
                            fields.Add(Html.X().ModelField().Name("grid-device-name"));
                            fields.Add(Html.X().ModelField().Name("grid-lastupdate"));
                            fields.Add(Html.X().ModelField().Name("grid-status"));
                            fields.Add(Html.X().ModelField().Name("grid-retry"));
                        }
                        )))
                    .DataSource(dataDevice)
                    );
})

.ColumnModel(columnModel =>
{//Add Data Object from store to Column
    columnModel.Columns.Add(Html.X().Column().Text("").DataIndex("grid-alarm").Width(30));
    columnModel.Columns.Add(Html.X().CheckColumn().TdCls("td-non-img-checkcolum").DataIndex("grid-check").Width(30).Editable(true));
    columnModel.Columns.Add(Html.X().Column().Text("Devide Name").DataIndex("grid-device-name"));
    columnModel.Columns.Add(Html.X().Column().Text("Latest Update").DataIndex("grid-lastupdate").Width(120));
    columnModel.Columns.Add(Html.X().Column().Text("Status").DataIndex("grid-status"));
    columnModel.Columns.Add(Html.X().Column().Text("Retry").DataIndex("grid-retry"));
})
.SelectionModel(gaSelectModel =>
{//Listener Event Handler use to call "gaSelectBind()" Function
    gaSelectModel.Add(Html.X().RowSelectionModel().Listeners(garowSelectListen =>
    {
        garowSelectListen.Select.Handler = "gaSelectBind();";
    }));
})

グリッドから値を取得できません。表示されます

[object NodeList]
4

1 に答える 1

0

次の 2 つの変更を行う必要があります。

  1. 次の行を置き換えます。

    // Old
    garowSelectListen.Select.Handler = "gaSelectBind();";
    
    // New
    garowSelectListen.Select.Fn = "gaSelectBind";
    
  2. <script>を次のものに置き換えます。

    <script type="text/javascript">
        var gaSelectBind = function (item, record, index) {
            App.ga_device_name.setValue(record.data.grid-device-name);
        };
    </script>
    

次のコードは機能しないため、サンプルから削除できます。

// Remove this code...
var nodelist;
nodelist = document.getElementsByName('grid-device-name')

お役に立てれば。

于 2012-10-23T15:19:50.890 に答える