FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
12
返回列表 发新帖
楼主: 好好fineui
打印 上一主题 下一主题

Tab切换时 执行了两次OnTabIndexChanged事件 是怎么回事

[复制链接]
11#
发表于 2013-8-23 14:49:55 | 只看该作者
好好fineui 发表于 2013-8-23 14:24
你看下我的调试截图  如果说只执行一次的话 我代码里的aa 都是每次只加1 但是事实是每次都加2 说明执行了 ...

贴一下你的完整代码,还有你的FineUI版本是?
12#
发表于 2013-8-23 15:04:01 | 只看该作者
好好fineui 发表于 2013-8-23 14:24
你看下我的调试截图  如果说只执行一次的话 我代码里的aa 都是每次只加1 但是事实是每次都加2 说明执行了 ...

按 sanshi 说的  把代码贴出来 全一点
13#
 楼主| 发表于 2013-8-23 15:12:47 | 只看该作者
本帖最后由 好好fineui 于 2013-8-23 15:15 编辑
sanshi 发表于 2013-8-23 14:49
贴一下你的完整代码,还有你的FineUI版本是?

FineUI版本最新的3.3.1.1 我这个代码就是在示例代码tabstrip_autopostback.aspx的基础上测试的,就简单的在前台加了个label控件,后台定义了个变量


前台代码:
  1. <form id="form1" runat="server">
  2.     <x:PageManager ID="PageManager1" runat="server" />
  3.     <x:TabStrip ID="TabStrip1" Width="750px" Height="300px" AutoPostBack="true" OnTabIndexChanged="TabStrip1_TabIndexChanged"
  4.         ShowBorder="true" ActiveTabIndex="1" runat="server">
  5.         <Tabs>
  6.             <x:Tab Title="标签一" EnableBackgroundColor="true" BodyPadding="5px"
  7.                 Layout="Fit" runat="server">
  8.                 <Items>
  9.                     <x:SimpleForm ID="SimpleForm1" ShowBorder="false" EnableBackgroundColor="true"
  10.                         ShowHeader="false" Title="SimpleForm1" runat="server">
  11.                         <Items>
  12.                             <x:Label ID="Label1" CssClass="highlight" Label="文本" Text="sanshi" runat="server" />
  13.                             <x:NumberBox ID="NumberBox1" Label="数字输入框" Required="true" ShowRedStar="true"
  14.                                 runat="server" />
  15.                             <x:TextBox ID="TextBox1" Label="文本框" runat="server" Required="True" ShowRedStar="true">
  16.                             </x:TextBox>
  17.                             <x:DatePicker ID="DatePicker1" runat="server" SelectedDate="2008-05-09" Label="日期选择器"
  18.                                 Text="2008-05-09" Required="true" ShowRedStar="true">
  19.                             </x:DatePicker>
  20.                             <x:TextArea ID="TextArea2" Label="多行文本框" runat="server" Required="True" ShowRedStar="true" />
  21.                         </Items>
  22.                     </x:SimpleForm>
  23.                 </Items>
  24.             </x:Tab>
  25.             <x:Tab Title="标签二" BodyPadding="5px" EnableBackgroundColor="true" runat="server">
  26.                 <Items>
  27.                     <x:Label ID="Label2" CssClass="highlight" Text="sanshi" runat="server" />
  28.                 </Items>
  29.             </x:Tab>
  30.             <x:Tab Title="标签三" BodyPadding="5px" EnableBackgroundColor="true"
  31.                 runat="server">
  32.                 <Items>
  33.                     <x:Label ID="Label3" CssClass="highlight" Text="sanshi" runat="server" />
  34.                 </Items>
  35.             </x:Tab>
  36.         </Tabs>
  37.     </x:TabStrip>
  38.     <br />
  39.     <x:Button ID="Button2" CssStyle="margin-right:5px;float:left;" ValidateForms="SimpleForm1"
  40.         Text="验证第一个标签中的表单" runat="server">
  41.     </x:Button>
  42.     <x:Button ID="Button3" Text="选中下一个标签" OnClick="Button3_Click" runat="server">
  43.     </x:Button>
  44.     <x:Label ID="Label4" runat="server" Text=""></x:Label>
  45.     </form>
复制代码
后台代码:
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (!IsPostBack)
  4.             {
  5.                 aa = 0;
  6.             }
  7.         }


  8.         protected void Button3_Click(object sender, EventArgs e)
  9.         {
  10.             int nextIndex = TabStrip1.ActiveTabIndex + 1;

  11.             if (nextIndex >= TabStrip1.Tabs.Count)
  12.             {
  13.                 nextIndex = 0;
  14.             }

  15.             TabStrip1.ActiveTabIndex = nextIndex;
  16.         }

  17.         private int aa
  18.         {
  19.             get { return (int)ViewState["aa"]; }
  20.             set { ViewState["aa"] = value; }
  21.         }
  22.         protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
  23.         {
  24.             aa++;
  25.             Label4.Text = "执行了" + aa + " 次";
  26.             if (TabStrip1.ActiveTabIndex == 0)
  27.             {
  28.                 Label1.Text = "标签回发时间:" + DateTime.Now.ToLongTimeString();
  29.             }
  30.             else if (TabStrip1.ActiveTabIndex == 1)
  31.             {
  32.                 Label2.Text = "标签回发时间:" + DateTime.Now.ToLongTimeString();
  33.             }
  34.             else if (TabStrip1.ActiveTabIndex == 2)
  35.             {
  36.                 Label3.Text = "标签回发时间:" + DateTime.Now.ToLongTimeString();
  37.             }
  38.         }
复制代码
14#
发表于 2013-8-23 15:27:12 | 只看该作者
好好fineui 发表于 2013-8-23 15:12
FineUI版本最新的3.3.1.1 我这个代码就是在示例代码tabstrip_autopostback.aspx的基础上测试的,就简单的 ...

已经确认是个BUG。

手工点击Tab切换时,只会触发TabIndexChanged事件一次;
点击”选中下一个标签“时,会触发TabIndexChanged事件两次

多谢指出,下个版本会修正
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-25 02:28 , Processed in 0.046137 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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