FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3752|回复: 4
打印 上一主题 下一主题

Grid的扩展列能只展开第一行吗

[复制链接]
跳转到指定楼层
楼主
发表于 2015-6-4 09:59:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  如题,请教Grid在初始化的时候,能够只展开第一行,其他的行为折叠状态吗?
官方的Demo里是要么全展开,要么全折叠。。。否则只能鼠标点击后展开。。。。
  求解!谢谢
沙发
 楼主| 发表于 2015-6-4 11:05:45 | 只看该作者
搞定了 谢谢群里的小伙伴
板凳
发表于 2015-6-4 11:29:43 | 只看该作者
o0micky 发表于 2015-6-4 11:05
搞定了 谢谢群里的小伙伴

分享下解决方案,方便后来的小伙伴膜拜
地板
 楼主| 发表于 2015-6-4 11:40:29 | 只看该作者
sanshi 发表于 2015-6-4 11:29
分享下解决方案,方便后来的小伙伴膜拜

回大神!
1 参考demo行扩展列(展开全部)的源代码
http://fineui.com/demo/#/demo/grid/grid_rowexpander_expandall.aspx
有一个封装的方法:
  1. Grid1.ExpandRowExpanders();
复制代码

2 查看ExpandRowExpanders的源代码
  1. public void ExpandRowExpanders()
  2.         {
  3.             _registerScriptRowExpanders = true;

  4.             ExpandAllRowExpanders = true;
  5.             //PageContext.RegisterStartupScript(String.Format("{0}.f_expandAllRows();", ScriptID));
  6.         }
复制代码

3 Ctrl+F 查找JS代码f_expandAllRows() ,在extjs库里找到
  1. // 展开所有的行扩展列
  2.         f_expandAllRows: function () {
  3.             var expander = this.getPlugin(this.id + '_rowexpander');
  4.             if (expander) {
  5.                 var store = this.getStore();
  6.                 for (var i = 0, count = store.getCount() ; i < count; i++) {
  7.                     var record = store.getAt(i);
  8.                     if (!expander.recordsExpanded[record.internalId]) {
  9.                         expander.toggleRow(i, record);
  10.                     }
  11.                 }
  12.             }
  13.         }
复制代码

4. 参照3的代码,使用行号只修改第一行。
  1. <script type="text/javascript">

  2.         var gridClientID = '<%=Grid1.ClientID %>';
  3.         //展开一行
  4.         function expandRow(id, num) {
  5.             if (gridClientID == undefined) return;
  6.             var grid = F(gridClientID);
  7.             var store = grid.getStore();
  8.             var expander = grid.getPlugin(gridClientID + '_rowexpander');
  9.             var record = store.getAt(num);
  10.             expander.toggleRow(num, record);
  11.         }

  12.         //页面第一个加载完毕后执行的函数
  13.         F.ready(function () {
  14.             expandRow(0, 0);
  15.         });

  16.     </script>
复制代码
5#
发表于 2015-6-4 12:35:31 | 只看该作者
多谢,本帖已移到《经验分享区》,并恭喜你获得《代码贡献》勋章
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-4-30 07:18 , Processed in 0.046908 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表