FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

FineUIPro/Mvc/Core v5.5.0 发布! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

查看: 72|回复: 5

点击菜单树生成的tab,无法触发OnTabIndexChanged事件,为什么?

[复制链接]
发表于 2019-7-7 14:20:54 | 显示全部楼层 |阅读模式
本帖最后由 ramble5956 于 2019-7-7 14:22 编辑

请教大侠,我想获取当前活动tab的ID,但是点击菜单树中的节点生成的tab,无法触发OnTabIndexChanged事件, 请问为什么?
如果是缺省的tab是可以的,比如首页!
代码如下,点击首页是可以触发的
        protected void mainTabStrip_TabIndexChanged(object sender, EventArgs e)
        {
            var activeTab = mainTabStrip.ActiveTabIndex;
            int TabIndex = mainTabStrip.ActiveTabIndex;

            if (mainTabStrip.ActiveTabIndex == 0)
                Alert.Show(mainTabStrip.ActiveTabIndex.ToString(), MessageBoxIcon.Warning);
            else if (mainTabStrip.ActiveTabIndex == 1)
                Alert.Show(mainTabStrip.ActiveTabIndex.ToString(), MessageBoxIcon.Warning);
            else if (mainTabStrip.ActiveTabIndex == 2)
                Alert.Show(mainTabStrip.ActiveTabIndex.ToString(), MessageBoxIcon.Warning);
        }

谢谢!
发表于 2019-7-8 09:59:29 | 显示全部楼层
在 JS 端动态添加的选项卡不会触发 OnTabIndexChanged 事件,因为 JS 端创建的选项卡后台并不知情,即使触发后台也无法获取相关数据。

类似的需要,可以通过JS端注册 https://fineui.com/js/api/F.TabStrip.html#event:tabchange 事件,然后发起自定义回发:https://pro.fineui.com/#/other/custom_postback.aspx
回复 支持 反对

使用道具 举报

 楼主| 发表于 6 天前 | 显示全部楼层
sanshi 发表于 2019-7-8 09:59
在 JS 端动态添加的选项卡不会触发 OnTabIndexChanged 事件,因为 JS 端创建的选项卡后台并不知情,即使触 ...

谢谢,具体可以怎么做,请问有类似代码示例么,刚接触,麻烦三石兄了。
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层
ramble5956 发表于 2019-7-10 10:03
谢谢,具体可以怎么做,请问有类似代码示例么,刚接触,麻烦三石兄了。 ...

JS端注册事件类似这样:
  1. F('TabStrip1').on('tabchange', function() {  })
复制代码

你可以在官网示例源代码中搜索: .on(   有一些使用自定义事件的例子
回复 支持 反对

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
sanshi 发表于 2019-7-11 11:10
JS端注册事件类似这样:

你可以在官网示例源代码中搜索: .on(   有一些使用自定义事件的例子

谢谢,我研究研究下看;
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 09:34 | 显示全部楼层
请教下面的代码是不是有什么问题,没有反应。谢谢!

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                litVersion.Text = FineUI.GlobalConfig.ProductVersion;
                //btnProject_Click(null, new EventArgs());
            }
            else
            {
                if (GetRequestEventArgument() == "tab_changed")
                {
                    Alert.Show("你好 FineUI!你点击了tab", MessageBoxIcon.Warning);
                }
            }
        }




    <script type="text/javascript">
        var menuClientID = '<%= MyTree.ClientID %>';
        var tabStripClientID = '<%= mainTabStrip.ClientID %>';
        // 页面控件初始化完毕后,会调用用户自定义的onReady函数
        F.ready(function () {
            var treeMenu = F(menuClientID);
            var mainTabStrip = F(tabStripClientID);

            F.initTreeTabStrip(treeMenu, mainTabStrip, {
                maxTabCount: 10,
                maxTabMessage: '请先关闭一些选项卡(最多允许打开 10 个)!'
            });

        });

        ///?动态添加的tab,切换时如何获取当前Active tab并刷新按钮选中状态?(或能保持按钮按下状态,不失去焦点?) 20190712
        F('mainTabStrip').on('tabchange', function () {
            if (e.getKey() == e.ENTER) {
                __doPostBack('', 'tab_changed');
            }
        })
    </script>





回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|FineUI 官方论坛 ( 皖ICP备13005369号-1 )

GMT+8, 2019-7-16 18:02 , Processed in 0.089064 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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