如何在 GridPanel Ext.net Razor 中按名称获取值
Posted
技术标签:
【中文标题】如何在 GridPanel Ext.net Razor 中按名称获取值【英文标题】:How can get Value by name in GridPanel Ext.net Razor 【发布时间】:2012-10-23 09:38:09 【问题描述】:我尝试使用 javascript 从 Ext.net 中的 GridPanel 获取值,我使用 Hanlder 在 Javascript 函数中调用 gaSelectBind() 但它返回 [object 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]
【问题讨论】:
【参考方案1】:您需要进行两项更改:
替换以下行:
// Old
garowSelectListen.Select.Handler = "gaSelectBind();";
// New
garowSelectListen.Select.Fn = "gaSelectBind";
将您的<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')
希望这会有所帮助。
【讨论】:
谢谢你的帮助,我改了 App.ga_device_name.setValue(record.data.grid-device-name);到 App.ga_device_name.setValue(record.data['grid-device-name']);它现在可以工作了。以上是关于如何在 GridPanel Ext.net Razor 中按名称获取值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ext.net 的 gridpanel 的组件列中显示/隐藏项目?
Ext.Net学习笔记17:Ext.Net GridPanel Selection
如何在 GridPanel Ext.net Razor 中按名称获取值
Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法