【问题标题】:ExtJs 4 How to get around duplicate id multiple tabs issue for state savingExtJs 4 如何解决重复的 id 多个选项卡问题以保存状态
【发布时间】:2013-05-21 17:37:17
【问题描述】:

我有一个在多个选项卡上实例化的网格面板。网格面板的每个实例都有相同的列,但数据不同。我正在尝试使用状态管理器来保存列设置,例如列顺序和宽度。

问题在于 ExtJs 为第一个选项卡将列的(生成的)id 保存在数据库中,而下一个选项卡为列生成新的 id,并且无法在数据库中找到这些新值的状态信息。所以我无法保存和加载有状态信息。

编辑:我尝试使用 itemIds 而不是 ids,因为 itemIds 包含在容器中,因此如果在多个选项卡上它不会是重复的 id。但是无论 itemId 属性如何,如果不存在 id,Ext 似乎都会生成 id。我添加了这部分以更好地了解我正在尝试完成的工作:数据库需要所有表具有相同的 id,但 Ext 需要它们不同。

【问题讨论】:

  • 您的列在标签之间是否应该相同?您使用的是哪个状态管理器?
  • @dbrin 我的列在标签之间将是相同的。我正在使用自定义状态管理器。

标签: extjs extjs4 extjs4.2


【解决方案1】:

我过去解决这个问题的方式是这样的......

    id: 'tab_panel_'+this.somthing_that_is_unique_like_a_table_name

这给了我这样的东西......

    <div id='tab_panel_my_first_table'>other information</div>
    <div id='tab_panel_my_second_table'>other information</div>

【讨论】:

  • 我认为问题在于 ID 不同,但 OP 希望它们相同,这不是一个好主意。
  • 这将是一个问题,因为当用户在第一个选项卡上进行更改时,数据库将保存名为“tab_panel_my_first_table”的列的列设置。然后,当第二个选项卡尝试加载设置时,它会查找不存在的“tab_panel_my_second_table”。
  • 如果他们共享同一个存储,该存储进行 AJAX 调用以加载数据...... ID 与加载数据无关。有办法解决它;-)
  • 我试图说明的一点是,您需要在 ID 的末尾添加一个唯一标识符来解决 OP 的问题,无论它是表名还是标识特定的数据集。 OP 说列是相同的,但数据是不同的,我相信他可以使用一些东西,只要它是 100% 唯一的,即使它是 'tab_panel_part_of_sql_where_clause_used_to_generate_data'
  • 对不起,我没有看到将 ID 保存到数据库中的部分。所以让我直截了当地说,标签面板是否像数据库中的列一样对待?你能贴一个代码片段吗?
猜你喜欢
  • 2021-01-12
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多