- 浏览: 2583301 次
- 性别:
- 来自: 小胖儿的大城
文章分类
最新评论
-
ni4wangba0:
ni4wangba0 写道亲测,算法有问题。对不起,其实是我自 ...
谈谈"求线段交点"的几种算法(js实现,完整版) -
ni4wangba0:
亲测,算法有问题。
谈谈"求线段交点"的几种算法(js实现,完整版) -
kers007:
苹果不让Webapp 在appstore 里发布,我不知道对 ...
苹果真的要在 AppStore 里封杀 WebApp 吗? -
striveandlive:
fins = js大牛
[原创]GT-Template, 一个超轻量级的js模板工具. -
AlwaysYang:
基础扎实的才能行走天下。
关于body的"大小"在ie和ff下的一些基础知识
GT-Grid 1.0 基础教程(十一)
教程说明:
这是一个告诉大家如何快速的利用GT-Grid开发列表的基础教程.以后会推出"高级教程".
查看其他教程,以及最新版本信息,请点击这里
第十一章: 工具栏与列表菜单
在前几章,我们或多或少的接触到了一些工具栏的知识.
例如 对 toolbarContent toolbarPosition 的使用.
这一章, 我们将对工具栏与列表菜单做更全面的介绍. 本章示例文件"mydemo11.html"
=========================================
首先,我们回顾一下toolbarPosition 和 toolbarContent 的作用:
toolbarPosition 无需多言,在这里再详细说一下toolbarContent.
toolbarContent 的值是一个字符串, 该字符串允许的内容如下:
各个关键字之间用空格分割, 各个关键字的位置决定了各个元素的相对位置,开发人员可以自行设置.
注意工具栏中的"pagesize" 要与 grid的pageSizeList属性配合使用. (详见教程第三章)
其中"过滤"和"图表"两项再具体说一下.
=========================================
"过滤"是针对列进行的,而且各个过滤条件是and的关系.
如果不希望某列参与过滤, 那么只需在column定义中 指定 filterable 属性为false即可 (默认是true)
过滤值输入框(填写过滤值的地方),默认是一个普通的input-text框,如果某列需要使用其他输入框,那么可以在该列的定义中,设置 filterField 属性:
filterField 属性的值为合法的 HTML字符串 , 该字符串为"列需要使用的过滤输入框"的html代码.
(注: 该属性以后会进一步强化, 支持dom对象等)
在"过滤"对话框中, 选择某一列,点击"添加条件" 然后在新增的条目中选择 条件关系 和条件值 即可.
默认的过滤方式是客户端的过滤. 关于服务端过滤, 以及过滤的具体特性和用法, 以后会单独编写一个章节来介绍.
=========================================
注意: GT-Grid 1.0里的图表功能目前还很简单,功能性和实用性都不是很强.
以后版本会做加强和变更, 如果目前不需要, 可以略过此小节(下一行 至 分割线).
欲使用图表功能, 需引入下面的js.
同时还要 设置 grid的 GTGridPath 属性, 该属性为 GT-Grid组件的代码所在的路径.(可以是绝对路径,也可以是相对于当前页面的相对路径)
示例中, 使用的是相对路径 :
"图表"功能会用一个柱状图显示选中记录的字段值(某些列的值). 如果希望记录的某列显示在图表里,那么只需在column定义中 指定下列属性即可:
其中 chartCaption ,在补充说明一下. 如果将 chartCaption 设置在 学生姓名列上, 然后 值为 '{@} 的成绩',
那么在 "张三"的成绩图表时, 图表的标题就会是 "张三的成绩", 也就是说,那个'{@}'会被替换为 当前记录的"学生姓名".
=========================================
大家在示例中还可以看到一个"列表菜单"的按钮,它类似windows的开始菜单按钮,总是出现在工具栏的最左边.
这个按钮的显示与否 是通过 grid的 showGridMenu 属性决定: (默认是false)
此时,该菜单上只有一个版本信息, 并没有其他的条目, 显示其他菜单条目需要下列属性:(默认是true)
目前菜单上的这些条目暂时不允许调整位置,也不允许添加自定义的条目.
如果开启了皮肤选择功能, 页面内还要引入皮肤相关的css, 而且这些css要放到 GT-Grid的主css后面, 示例:
冻结列 隐藏列 列编组 三个功能项都是针对列的, 如果开发人员不希望某列具备该功能,则只需在column定义中 指定下列属性为false即可 (默认是true)
=========================================
本章对列表的工具栏和列表菜单的使用 做了进一步的介绍. 我想没有本章内容, 大家通过前几章的示例多少也能理解这些知识点.
这一章就算做对相关知识的一个回顾和总结吧. 我们下一章再见.
这句话我没明白
你要在哪里设置?? gt内部从来没有设置过这个东西啊
异常信息是开发人员在后台自己设置的啊
下一个版本会支持
把
GT.Dialog 改为 GT.DialogEditor 试一试
教程说明:
这是一个告诉大家如何快速的利用GT-Grid开发列表的基础教程.以后会推出"高级教程".
查看其他教程,以及最新版本信息,请点击这里
第十一章: 工具栏与列表菜单
在前几章,我们或多或少的接触到了一些工具栏的知识.
例如 对 toolbarContent toolbarPosition 的使用.
这一章, 我们将对工具栏与列表菜单做更全面的介绍. 本章示例文件"mydemo11.html"
=========================================
首先,我们回顾一下toolbarPosition 和 toolbarContent 的作用:
toolbarPosition : 工具栏的位置. 可选值:'top'/'bottom'/null, 暂时不支持上下都显示. toolbarContent : 设置工具栏上要显示的工具按钮,以及相对位置,各个按钮之间用空格间隔. 例如 toolbarContent : 'nav | state' .
toolbarPosition 无需多言,在这里再详细说一下toolbarContent.
toolbarContent 的值是一个字符串, 该字符串允许的内容如下:
|(竖线) : 标示"按钮组"(若干个按钮组成的功能相近的组,开发者可以自由定义) 之间的分隔符 nav 导航按钮, 包括 "首页 前一页 后一页 末页" 四个按钮 goto 页面跳转按钮, 包括 输入目标页号的区域 和一个跳转的按钮 pagesize 改变每页记录条数的下拉框 reload 刷新按钮 add "+"添加记录 del "-"删除记录 save 保存变更的按钮 print 打印按钮 filter 过滤按钮 chart 柱状图表按钮 state 显示数据的数量信息(分页信息),如共几条 共几页 当前是第几条等等
各个关键字之间用空格分割, 各个关键字的位置决定了各个元素的相对位置,开发人员可以自行设置.
注意工具栏中的"pagesize" 要与 grid的pageSizeList属性配合使用. (详见教程第三章)
其中"过滤"和"图表"两项再具体说一下.
=========================================
"过滤"是针对列进行的,而且各个过滤条件是and的关系.
如果不希望某列参与过滤, 那么只需在column定义中 指定 filterable 属性为false即可 (默认是true)
//某列定义 { /* ... 略去其他属性设置 ...*/ filterable : true , //是否允许该列参与过滤 }
过滤值输入框(填写过滤值的地方),默认是一个普通的input-text框,如果某列需要使用其他输入框,那么可以在该列的定义中,设置 filterField 属性:
//某列定义 { filterField : GT.U.createSelectHTML( {'0': '未知' ,'1':'男', '2':'女'} ) }
filterField 属性的值为合法的 HTML字符串 , 该字符串为"列需要使用的过滤输入框"的html代码.
(注: 该属性以后会进一步强化, 支持dom对象等)
在"过滤"对话框中, 选择某一列,点击"添加条件" 然后在新增的条目中选择 条件关系 和条件值 即可.
默认的过滤方式是客户端的过滤. 关于服务端过滤, 以及过滤的具体特性和用法, 以后会单独编写一个章节来介绍.
=========================================
注意: GT-Grid 1.0里的图表功能目前还很简单,功能性和实用性都不是很强.
以后版本会做加强和变更, 如果目前不需要, 可以略过此小节(下一行 至 分割线).
欲使用图表功能, 需引入下面的js.
<script type="text/javascript" src="./flashchart/fusioncharts/FusionCharts.js"></script>
同时还要 设置 grid的 GTGridPath 属性, 该属性为 GT-Grid组件的代码所在的路径.(可以是绝对路径,也可以是相对于当前页面的相对路径)
示例中, 使用的是相对路径 :
var gridConfig={ /* ... 略去其他属性设置 ...*/ GTGridPath : '../../gt-grid', }
"图表"功能会用一个柱状图显示选中记录的字段值(某些列的值). 如果希望记录的某列显示在图表里,那么只需在column定义中 指定下列属性即可:
//某列定义 { /* ... 略去其他属性设置 ...*/ inChart : true , // 是否出现在图表里 chartColor : '66eeaa', // 出现在图表里时 ,柱状图的颜色(不带#号) chartCaption : '{@} 的成绩' , //设置图表的标题. 该属性只需设置在"要作为图表标题"的列上, 其中"{@}" 代表的是选中记录的该列的值. }
其中 chartCaption ,在补充说明一下. 如果将 chartCaption 设置在 学生姓名列上, 然后 值为 '{@} 的成绩',
那么在 "张三"的成绩图表时, 图表的标题就会是 "张三的成绩", 也就是说,那个'{@}'会被替换为 当前记录的"学生姓名".
=========================================
大家在示例中还可以看到一个"列表菜单"的按钮,它类似windows的开始菜单按钮,总是出现在工具栏的最左边.
这个按钮的显示与否 是通过 grid的 showGridMenu 属性决定: (默认是false)
var gridConfig={ /* ... 略去其他属性设置 ...*/ showGridMenu : true }
此时,该菜单上只有一个版本信息, 并没有其他的条目, 显示其他菜单条目需要下列属性:(默认是true)
var gridConfig={ /* ... 略去其他属性设置 ...*/ showGridMenu : true , allowCustomSkin : true , //是否开启主菜单上的皮肤选择选项 allowGroup : true , //是否开启主菜单上的列编组选项 allowFreeze : true , //是否开启主菜单上的冻结列选项 allowHide : true , //是否开启主菜单上的隐藏列选项 }
目前菜单上的这些条目暂时不允许调整位置,也不允许添加自定义的条目.
如果开启了皮肤选择功能, 页面内还要引入皮肤相关的css, 而且这些css要放到 GT-Grid的主css后面, 示例:
<link rel="stylesheet" type="text/css" href="./gt_grid.css" /> <link rel="stylesheet" type="text/css" href="./skin/china/skinstyle.css" /> <link rel="stylesheet" type="text/css" href="./skin/vista/skinstyle.css" /> <link rel="stylesheet" type="text/css" href="./skin/mac/skinstyle.css" />
冻结列 隐藏列 列编组 三个功能项都是针对列的, 如果开发人员不希望某列具备该功能,则只需在column定义中 指定下列属性为false即可 (默认是true)
//某列定义 { /* ... 略去其他属性设置 ...*/ groupable : true, //是否允许对该列进行编组 frozenable : true, //是否允许冻结该列 hideable : true, //是否允许隐藏该列 }
=========================================
本章对列表的工具栏和列表菜单的使用 做了进一步的介绍. 我想没有本章内容, 大家通过前几章的示例多少也能理解这些知识点.
这一章就算做对相关知识的一个回顾和总结吧. 我们下一章再见.
评论
18 楼
Freaky
2009-05-27
toolbarContent 能不能自定义?
17 楼
supercrsky
2009-05-06
// 注册自定义工具按钮
GT.ToolFactroy.register(
'mybutton', //按钮的标识 (请使用全小写字母)
{
cls : 'mybutton-cls',
// 按钮的提示信息
toolTip : '为指定用户分配角色',
// 点击按钮时 执行的动作
action : function(event,grid)
{
alert(event.id);
alert(grid.columns[0].render)
}
}
);
能否说下event,grid的api ? 或常用属性和函数?
想自定义事件,没法做啊。不知道有什么属性和函数。。谢谢
GT.ToolFactroy.register(
'mybutton', //按钮的标识 (请使用全小写字母)
{
cls : 'mybutton-cls',
// 按钮的提示信息
toolTip : '为指定用户分配角色',
// 点击按钮时 执行的动作
action : function(event,grid)
{
alert(event.id);
alert(grid.columns[0].render)
}
}
);
能否说下event,grid的api ? 或常用属性和函数?
想自定义事件,没法做啊。不知道有什么属性和函数。。谢谢
16 楼
lix23
2008-11-27
期待看到换肤、导出excel、柱状图 等高级功能的教程。:)
15 楼
fcw528
2008-10-15
期待服务端过滤相关的东东,不知fins何时能够推出!
14 楼
fins
2008-08-29
引用
如果点击reload,可不可以将保存时出现的异常语句“{success:false,exception:'exception'}”设置为"{success:true,exception:''}"
这句话我没明白
你要在哪里设置?? gt内部从来没有设置过这个东西啊
异常信息是开发人员在后台自己设置的啊
13 楼
itlieying
2008-08-29
如果可以的话,那该怎么操作?
12 楼
itlieying
2008-08-29
toolbarContent 下的reload刷新时重新从后台加载数据,
如果点击reload,可不可以将保存时出现的异常语句“{success:false,exception:'exception'}”设置为"{success:true,exception:''}"
如果点击reload,可不可以将保存时出现的异常语句“{success:false,exception:'exception'}”设置为"{success:true,exception:''}"
11 楼
fins
2008-08-26
好老头 写道
toolbarContent 可以自己扩展么
下一个版本会支持
10 楼
fins
2008-08-26
itlieying 写道
fins,
请教个问题,我在colsConfig中的第一列加了一个属性editor: dialogEditor
dialogEditor也已义好了的,
var dialogEditor = function(){
var myd = new GT.Dialog({
id: "sqlEditor",
gridId : "grid1" ,
width: 500 ,
height:250 ,
title : '编辑器' ,
body : ['<textarea id="text_input" rows="12" cols="20" style="width:99%"></textarea><br/>',
'<input type="button" value="确定" onclick="GT.$grid(\'grid1\').activeDialog.confirm()"/>'].join(''),
getValue : function(){
return GT.$("text_input").value;
},
setValue : function(value){
GT.$("text_input").value = value;
},
active : function(){
GT.U.focus(GT.$("text_input"));
}
});
return myd;
};
当单击此列当中的某一单元格时,会弹出一个对话框,但是点击不了确定,页面报“对象不支持此属性或方法”,我采用了奥运版的gt-grid
请教个问题,我在colsConfig中的第一列加了一个属性editor: dialogEditor
dialogEditor也已义好了的,
var dialogEditor = function(){
var myd = new GT.Dialog({
id: "sqlEditor",
gridId : "grid1" ,
width: 500 ,
height:250 ,
title : '编辑器' ,
body : ['<textarea id="text_input" rows="12" cols="20" style="width:99%"></textarea><br/>',
'<input type="button" value="确定" onclick="GT.$grid(\'grid1\').activeDialog.confirm()"/>'].join(''),
getValue : function(){
return GT.$("text_input").value;
},
setValue : function(value){
GT.$("text_input").value = value;
},
active : function(){
GT.U.focus(GT.$("text_input"));
}
});
return myd;
};
当单击此列当中的某一单元格时,会弹出一个对话框,但是点击不了确定,页面报“对象不支持此属性或方法”,我采用了奥运版的gt-grid
把
GT.Dialog 改为 GT.DialogEditor 试一试
9 楼
tangrenzhong116
2008-08-22
怎么过滤去起呢?
8 楼
好老头
2008-08-21
toolbarContent 可以自己扩展么
7 楼
itlieying
2008-08-18
fins,
请教个问题,我在colsConfig中的第一列加了一个属性editor: dialogEditor
dialogEditor也已义好了的,
var dialogEditor = function(){
var myd = new GT.Dialog({
id: "sqlEditor",
gridId : "grid1" ,
width: 500 ,
height:250 ,
title : '编辑器' ,
body : ['<textarea id="text_input" rows="12" cols="20" style="width:99%"></textarea><br/>',
'<input type="button" value="确定" onclick="GT.$grid(\'grid1\').activeDialog.confirm()"/>'].join(''),
getValue : function(){
return GT.$("text_input").value;
},
setValue : function(value){
GT.$("text_input").value = value;
},
active : function(){
GT.U.focus(GT.$("text_input"));
}
});
return myd;
};
当单击此列当中的某一单元格时,会弹出一个对话框,但是点击不了确定,页面报“对象不支持此属性或方法”,我采用了奥运版的gt-grid
请教个问题,我在colsConfig中的第一列加了一个属性editor: dialogEditor
dialogEditor也已义好了的,
var dialogEditor = function(){
var myd = new GT.Dialog({
id: "sqlEditor",
gridId : "grid1" ,
width: 500 ,
height:250 ,
title : '编辑器' ,
body : ['<textarea id="text_input" rows="12" cols="20" style="width:99%"></textarea><br/>',
'<input type="button" value="确定" onclick="GT.$grid(\'grid1\').activeDialog.confirm()"/>'].join(''),
getValue : function(){
return GT.$("text_input").value;
},
setValue : function(value){
GT.$("text_input").value = value;
},
active : function(){
GT.U.focus(GT.$("text_input"));
}
});
return myd;
};
当单击此列当中的某一单元格时,会弹出一个对话框,但是点击不了确定,页面报“对象不支持此属性或方法”,我采用了奥运版的gt-grid
6 楼
fins
2008-08-12
如果想冻结某一列,某一列的column里头加入属性
frozen : true
或者是通过菜单来实现.
====================
页面报错:'freezeRows'未定义
8月8号正式版中 应该没有此bug了
====================
移动左右滚动条时,第一列不动,第二列,第三列移动……
冻结列就是这个效果
frozen : true
或者是通过菜单来实现.
====================
页面报错:'freezeRows'未定义
8月8号正式版中 应该没有此bug了
====================
移动左右滚动条时,第一列不动,第二列,第三列移动……
冻结列就是这个效果
5 楼
itlieying
2008-08-12
移动左右滚动条时,第一列不动,第二列,第三列移动……
4 楼
itlieying
2008-08-12
请教个问题:
如果想冻结某一列,是不是只要在某一列的column里头加入属性
grouped : !true , frozen : !false , syncRefresh : false
下午这样试了一下,页面报错:'freezeRows'未定义
请问这个问题出在哪?
如果想冻结某一列,是不是只要在某一列的column里头加入属性
grouped : !true , frozen : !false , syncRefresh : false
下午这样试了一下,页面报错:'freezeRows'未定义
请问这个问题出在哪?
3 楼
itlieying
2008-08-12
嗯,是啊,下午在试了几个,后来发现,只能在各列的column的width里头设置一下固定的长度, 而且长度还不能带px或%单位
2 楼
fins
2008-08-12
如果你的需求仅仅是"每列的宽度要一样的" 那么可以设置 column的width都是一样的就可以了
不过 我想你的意思应该是是否支持 百分比列宽 以及自动填满列表宽度 或自动适应列表宽度吧?
目前版本还不支持
不过 我想你的意思应该是是否支持 百分比列宽 以及自动填满列表宽度 或自动适应列表宽度吧?
目前版本还不支持
1 楼
itlieying
2008-08-12
fins:
每列的宽度如果要一样的,怎么设置?
每列的宽度如果要一样的,怎么设置?
发表评论
-
那些成天说我的GT-Grid抄袭的人注意了
2009-03-19 22:01 10153你们能够在浩瀚的网络中找到 sigmawidgets htt ... -
[发布]GT-Grid 1.42 版 ★& "前后台结合示例"★2009-01-15更新
2009-01-15 02:41 27352=============================== ... -
[发布]GT-Grid 1.36 版 ★& "前后台结合示例"★2008-12-01 12AM 更新
2008-12-01 01:27 10312(最后更新时间 :12月1日 中午12点时, 修正了 1.36 ... -
GT-Grid 近期将会发布一个bug修正版本,然后将会进行较大的重构
2008-11-11 00:12 3824GT-Grid 近期将会发布一个bug修正版本, 主要修正上一 ... -
[发布]GT-Grid 1.25 版 ★& "前后台结合示例" ★2008-10-21 更新
2008-10-21 17:25 19628首先 先道个歉. 之前许诺过 10月20日之前发布,结果迟到了 ... -
对于复杂javabean到json串的转换,建议使用FlexJSON
2008-10-16 11:23 9847gt-grid自带的那个 javaBean与json的转换工具 ... -
[通知] GT-Grid 讨论群 变更
2008-10-10 15:54 2989GT-Grid的群建立至今, 用户早已满员, 每日还有很多申请 ... -
10月中旬支持导出excel和csv的gt-grid会推出
2008-10-04 21:19 262710月中旬支持导出excel和csv的gt-grid会推出 ( ... -
[发布]GT-Grid 1.18版 & "前后台结合示例"更新 ★2008-09-12发布
2008-09-12 16:40 12528这个版本带有 与java后台结合的示例. 单独的最新版本的 ... -
调查: 关于GT-Grid导致IE崩溃的问题
2008-09-09 15:39 4034有网友反应 对GT-Grid进行操作时 会导致IE崩溃. ... -
[发布] GT-Grid 1.15 版 (080908发布) ★
2008-09-08 14:10 4094GT-Grid 1.15版 说明文档. 这篇文档主要说明一些 ... -
[发布] GT-Grid 1.12 版 (080904发布) ★
2008-09-03 11:02 5305GT-Grid 1.12版 说明文档. 这篇文档主要说明一些 ... -
奥运结束, GT启航
2008-08-25 10:11 2758前一阵由于关注奥运 GT做的工作比较少 奥运结束了 GT该再 ... -
最近奥运,GT的开发暂停一段时间,抱歉了
2008-08-18 20:13 19068月8号之后 GT的更新速度缓慢了,我回答问题也没有以前及时了 ... -
[发布] GT-Grid 1.0 奥运版 (080808发布) ★ without doc
2008-08-08 17:17 19305由于文档工作滞后 导致我本来放弃了今天发布的念头 但是还是不忍 ... -
GT-Grid 1.0 基础教程(十二)
2008-08-05 02:06 17432GT-Grid 1.0 基础教程(十二) 教程说明: 这是一 ... -
GT-Grid 1.0 基础教程(十)
2008-08-03 00:52 16705GT-Grid 1.0 基础教程(十) 教程说明: 这是一个 ... -
GT-Grid 1.0 基础教程(九)
2008-07-28 00:43 15521GT-Grid 1.0 基础教程(九) 教程说明: 这是一个 ... -
我的两点请求, 麻烦关注GT和ecside的朋友看一下,谢谢了
2008-07-27 21:55 29651 恳请大家以后不要通 ... -
GT-Grid 1.0 基础教程(八)
2008-07-27 01:13 14926GT-Grid 1.0 基础教程(八) 教程说明: 这是一个 ...
相关推荐
GT-Grid 1.0 基础教程GT-Grid 1.0 基础教程GT-Grid 1.0 基础教程GT-Grid 1.0 基础教程
教程说明: 这是一个告诉大家如何快速的利用GT-Grid开发列表的基础教程.以后会推出"高级教程".
GT-Grid 教程示例 GT-Grid 教程示例GT-Grid 教程示例GT-Grid 教程示例
gt-grid 基础教程。胖哥的gt-grid用于页面展示的功能强大的表格组件
gt-grid是一款不错的框架,我写的这个gt-grid例子,用的都是基本框架,里面都用详细的注释,希望能对学习gt-grid的朋友有所帮助
GT-Grid 是一个基于Ajax技术的列表组件. 拥有丰富的功能以及良好易用性和用户体验. 它是 EC Side列表组件 的更新换代产品. (ECSide是GT-Grid作者的另一作品, 是一个在国内拥有广泛用户群的列表组件,它基于传统的jsp...
GT-Grid 的最新版本 + 与后台结合的例子 大家重点看action 里是如何从客户端取数据 以及如何向客户端送数据的
最新的GT-Grid vs EXT-Grid例子是用GT-Grid表格控件和EXT-Grid表格控件来进行比较、里面有三个例子、看了这后觉得这两种表格显示数据控件功能实在太强大啦..
GT-grid 例子
gt-grid 样例源码
网页Grid组件 GT-Grid组件 牛逼的Grid组件 Web开发理想的Grid,内附说明和例子
最新版GT-grid-好用的表格组件,支持分页,过滤,排序等等
NULL 博文链接:https://fins.iteye.com/blog/283672
gt-grid_1[1].25 分页 用ajax 开发的 里面有例子与还有原代码
列表组件N0.1(国产) 用过之后你才知道优化 初学者提供问题解答哈 qq 406235245
NULL 博文链接:https://wfl8015.iteye.com/blog/310981
grid控件列表!这是jquery的一个grid插件GT-GRID,支持分页、排序等功能
ag-grid我没找到汉化提示的js(没仔细找),下载了官方的社区版js代码,记事本查找替换的,如果没积分可以自己搜索替换,我只改了contains(模糊查找)、not contains(模糊过滤)、equals(精确查找)、not equals...
前端开源库-ag-grid-communityAG网格社区,支持javascript/react/angularjs/web组件的高级数据网格/数据表
CATIA 制图放置车线使用插件,制图放置车线使用插件制图放置车线使用插件