【问题标题】:How to create new Object or Cloning of ListGrid in Smart Client如何在 Smart Client 中创建新对象或克隆 ListGrid
【发布时间】:2016-05-13 07:39:21
【问题描述】:

我想在 Smart Client 中创建一个 ListGrid 组件的对象。

isc.ListGrid.create({
  ID: "countryList",
   width:500, height:224, top:50, alternateRecordStyles:true,
   fields:[
     {name:"countryCode", title:"Flag", width:50, type:"image", imageURLPrefix:"flags/16/", imageURLSuffix:".png"},  
     {name:"countryName", title:"Country"},  
     {name:"capital", title:"Capital"},  
     {name:"continent", title:"Continent"}  
]}) ; 

现在 countryList 是 ListGrid 组件的 ID。

让我们假设这个 Grid 拥有一些值,我想放入一些其他值,比如数据库中的值,并且有一个条件是我们不必覆盖或更改以前的值。所以我们需要创建一个新的countryList 的对象。

我们怎样才能做到这一点?

【问题讨论】:

    标签: smartclient


    【解决方案1】:

    我不明白您是否需要同一个 ListGrid 的另一个实例,或者您是否需要在同一个 ListGrid 中显示不同的数据。

    如果你需要另一个实例,你可以定义一个类:

    isc.defineClass("MyGrid", "ListGrid");
    isc.MyGrid.addProperties({
      width:500, height:224, top:50, alternateRecordStyles:true,
      fields:[
        {name:"countryCode", title:"Flag", width:50, type:"image", imageURLPrefix:"flags/16/", imageURLSuffix:".png"},  
        {name:"countryName", title:"Country"},  
        {name:"capital", title:"Capital"},  
        {name:"continent", title:"Continent"}  
      ]
    });
    isc.MyGrid.create({ID: "countryList"});
    isc.MyGrid.create({ID: "countryList2"});
    

    否则,如果您需要在同一个 ListGrid 实例中显示不同的数据,您可以这样做:

    • countryList.setData(newData); // 或:
    • dataSource.fetchData(条件, "countryList.setData(data)"); // 或:
    • countryList.fetchData(newCriteria); // 如果 countryList 有 dataSource 属性

    【讨论】:

    • 我有一个超过 75 个字段的列表网格。现在我创建了一个方法,其参数是列表网格数组 (var array=ListGrid_ID.getRecord(index);),我想使用相同的方法对于来自数据库的数据,所以我需要将 DB 值保存到 ListGrid 的新实例中。我不知道如何制作新实例。
    • 我也尝试过您上面写的上述方法,但它在同一屏幕上显示两个列表网格。我需要两个对象,但只在屏幕上的列表网格上。
    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 2017-06-19
    • 2013-04-23
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多