2012-06-07 58 views
2

我有两个关于列选择器的问题。首先是我为我的网格使用标题分组,例如,我有一个Display Type标题组,其中包含两列“类型和大小”,另一个标题为“存储”的标题组,其中包含两个类型和大小子列。当我使用columnChooser时,它显示:Type Size Type Size。有什么方法可以将列标题名称预先添加到它们吗?我还在colModel中将这些列命名为DS_Size DS_Type ....有什么方法可以使用这些列colModel名称而不是colNames? 我的第二个问题是我的搜索部分已经使用了erichynds multiselect(请参阅link),并且它与jqGrid使用的版本有冲突(请参阅also)。我怎么才能重命名erichynds多选插件到别的东西?我没有找到任何$ .fn。在它的源代码带列标题的JqGrid列选择器

其实我问了三个问题:P,但前两个是一个:d

感谢您阅读我的问题:)

回答

1

您的主要问题的答案,你会在the documentation找到的jqGrid的:

列选择不与头分组

我屏幕ä兼容在Header Grouping实现的许多部分,我知道columnChooser的代码。所以我知道如何修改columnChooser的代码以包含对标题分组的支持。主要的问题是,只是为了消除这种限制,这是相当多的工作。 jqGrid是免费开源产品。谁愿意花时间去消除这些限制?我花了很多时间在stackoverflow上帮助其他人,但我必须养活我的家人:-)。如果你真的需要这样的功能,你可以自己实现这个功能。您将需要修改columnCooser的最重要信息,您将在the answer中找到。

现在谈谈你的问题的最后一部分:谁在多选部件之间产生“冲突”。在Eric Hynds jQuery UI MultiSelect Widget(请参阅here)的更改列表中简单查看该插件表明该插件处于活动状态。在columnChooser中使用的另一端another one(见here)将不会更改。尽管如此,它的工作原理可以在以后使用你有什么“冲突”?在旧版本的Eric Hynds jQuery UI MultiSelect Widget中,它被使用了相同的部件名称"ui.multiselect",这是冲突的。许多后期版本使用"ech.multiselect"名称(请参阅here)。所以我不知道你的意思是什么冲突。可以发现,你应该得到最后一个版本的代码。

在我的回答结束时,我会建议您阅读the answer,其中我建议对columnChooser进行一些修改,以允许提高可见性并使Column Chooser的对话框真正可调整大小。可以使用$.jgrid.extend({columnChooser : function(opts) {...}});将原始版本columnChooser覆盖为新版本。

+0

谢谢您的快速回复。我将11660行的jqGrid源代码从'(this.hidden?“”:“selected ='selected'”)+“>”+ colNames [i] +“”);'to'(this.hidden? “:”selected ='selected'“)+”>“+ colModel [i] .name.replace('_','')+”“);'和我的问题现在解决了:)关于第二个问题,当我加载我的网页我希望调用$('#id')。multiselect(.....)将我的选择转换为复选框下拉列表,但我的搜索面板的所有选择将以columnChooser选择格式。但谢谢你的链接,我必须研究它们:) – Soheil

+0

@Sheheil:不客气!如果您在解决冲突时遇到问题,可以发布包含可用于重现问题的演示的新问题。 – Oleg