FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 3626|回复: 5
打印 上一主题 下一主题

【已解决,未指定ID】动态添加Accordion提示$b未定义

[复制链接]
跳转到指定楼层
楼主
发表于 2017-3-19 23:35:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
view部分代码:
  1. F.Region()
  2.                 .ID("Region2")
  3.                 .RegionSplit(true)
  4.                 .Width(200)
  5.                 .ShowHeader(true)
  6.                 .Title("菜单")
  7.                 .EnableCollapse(true)
  8.                 .Layout(LayoutType.Fit)
  9.                 .RegionPosition(Position.Left)
  10.                 .Items(
  11.                     ViewBag.Accordion

  12.                 ),
复制代码
controller部分代码:
  1. private void LoadData()
  2.         {
  3.             var menu = authorizeBLL.GetModuleList(SystemInfo.CurrentUserId).ToList();
  4.             Accordion accordionMenu = new Accordion();

  5.             foreach (var m in menu.Where(w => w.ParentId == "0"))
  6.             {
  7.                 AccordionPane accordionPane = new AccordionPane();
  8.                 accordionPane.Title = m.FullName;
  9.                 accordionPane.ShowBorder = false;
  10.                 accordionPane.BodyPadding = "2px 0 0 0";
  11.                 accordionPane.IconUrl = m.Icon;
  12.                 accordionMenu.Panes.Add(accordionPane);
  13.             }
  14.             ViewBag.Accordion = accordionMenu;
  15.         }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2017-3-19 23:50:58 | 只看该作者
请基于空项目重现问题,并上传
板凳
 楼主| 发表于 2017-3-20 00:06:04 | 只看该作者
sanshi 发表于 2017-3-19 23:50
请基于空项目重现问题,并上传


直接替换你的空项目里的Views/Home/Index 和Controllers/HomeController谢谢



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
地板
发表于 2017-3-20 11:22:25 | 只看该作者

这个问题其实很简单,你的后台代码:
  1. private void LoadData()
  2. {
  3.         Accordion accordionMenu = new Accordion();

  4.         for (var i=0;i<3;i++)
  5.         {
  6.                 AccordionPane accordionPane = new AccordionPane();
  7.                 accordionPane.Title = "AccordionPane"+i.ToString();
  8.                 accordionPane.ShowBorder = false;
  9.                 accordionPane.BodyPadding = "2px 0 0 0";               
  10.                 accordionMenu.Panes.Add(accordionPane);
  11.         }
  12.    
  13.         ViewBag.Accordion = accordionMenu;
  14. }
复制代码


前台代码:
  1. F.ready(function () {

  2.             // 初始化主框架中的树和选项卡互动,以及地址栏的更新
  3.             // treeMenu: 主框架中的树控件实例,或者内嵌树控件的手风琴控件实例
  4.             // mainTabStrip: 选项卡实例
  5.             // updateHash: 切换Tab时,是否更新地址栏Hash值(默认值:true)
  6.             // refreshWhenExist: 添加选项卡时,如果选项卡已经存在,是否刷新内部IFrame(默认值:false)
  7.             // refreshWhenTabChange: 切换选项卡时,是否刷新内部IFrame(默认值:false)
  8.             // maxTabCount: 最大允许打开的选项卡数量
  9.             // maxTabMessage: 超过最大允许打开选项卡数量时的提示信息
  10.             F.initTreeTabStrip(F.ui.treeMenu, F.ui.mainTabStrip, {
  11.                 maxTabCount: 10,
  12.                 maxTabMessage: '请先关闭一些选项卡(最多允许打开 10 个)!'
  13.             });

  14.         });
复制代码


看到没,你前台调用 F.ui.treeMenu,但是后台未指定名为 treeMenu 的树控件 或者 包含树控件的Accordion控件。

把后台代码改为,就好了:
  1. private void LoadData()
  2. {
  3.         Accordion accordionMenu = new Accordion();
  4.         accordionMenu.ID = "treeMenu";
复制代码


效果:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5#
发表于 2017-3-20 11:25:51 | 只看该作者
哈哈,这提示有亮点,提示$b未定义
6#
 楼主| 发表于 2017-3-20 13:27:59 | 只看该作者
sanshi 发表于 2017-3-20 11:22
这个问题其实很简单,你的后台代码:

非常感谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-28 02:42 , Processed in 0.049435 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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