FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 5389|回复: 5

【已确认】AutoPostBack 的Bug

[复制链接]
发表于 2013-12-13 13:11:11 | 显示全部楼层 |阅读模式
反馈BUG
程序版本: FineUI v3.3.2
浏览器: IE10 
BUG截图:
BUG地址: -
这个不知道是不是Bug,还是我设置有问题
我在程序页面上面查询区域放置了2个控件,2个控件都启用了 AutoPostBack
后面发现,其中一个控件触发事件时,另一个控件也会触发事件
页面下方的Grid控件,如果开启Row选择事件,也会触发上面控件的事件。也有可能事件类型都是 EventArgs
下面是页面查询部分代码
            <x:Form ID="Form2" runat="server" Height="36px" BodyPadding="5px" ShowHeader="false"
                ShowBorder="false" LabelAlign="Right" EnableBackgroundColor="true">
                <Rows>
                    <x:FormRow ID="FormRow1" runat="server">
                        <Items>
                            <x:TwinTriggerBox runat="server" EmptyText="输入要搜索的用工单位" Label="单位名称" ID="txtQUnitName"
                                ShowTrigger1="false" OnTrigger2Click="btnQuery_Click" Trigger1Icon="Clear" Trigger2Icon="Search" />
                            <xropDownList ID="cboQRealDate" runat="server" Required="true" ShowRedStar="true"
                                Label="自然月份" AutoPostBack="true" OnSelectedIndexChanged="cboQRealDate_SelectedIndexChanged" />
                            <x:RadioButtonList ID="rboIsWork" Label="状态" runat="server" AutoPostBack="true"
                                OnSelectedIndexChanged="rboIsWork_SelectedIndexChanged" Width="200px">
                                <x:RadioItem Text="当月新增" Value="0" Selected="true" />
                                <x:RadioItem Text="当月减员" Value="1" />
                            </x:RadioButtonList>
                        </Items>
                    </x:FormRow>
                </Rows>
            </x:Form>


本帖子中包含更多资源

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

x
发表于 2013-12-19 11:52:20 | 显示全部楼层
是有这样的问题,当一页面有多个AutoPostBack的时候,事件没有去判断这个AutoPostBack是不是属于他的。
可以在每个事件里加个判断:
string streven = Request.Form["__EVENTTARGET"];
if (streven == "某个事件回发回来的")  //这里的值可以通过先Alert.Show(streven); 出来
   {
}
 楼主| 发表于 2013-12-26 13:33:55 | 显示全部楼层
收到,谢谢解答,这就去试试
 楼主| 发表于 2013-12-26 15:29:29 | 显示全部楼层
最后修改了FineUI 源程序的OnSelectedIndexChanged事件,问题解决,不知道有没有后遗症,代码如下
        /// <summary>
        /// 触发选中项改变事件
        /// </summary>
        /// <param name="e">事件参数</param>
        protected virtual void OnSelectedIndexChanged(EventArgs e)
        {
            EventHandler handler = Events[_handlerKey] as EventHandler;
            if (handler == null)
            {
                return;
            }

            //增加回发事件检测
            if (this.AutoPostBack && this.UniqueID != Context.Request.Form["__EVENTTARGET"])
            {
                return;
            }

            handler(this, e);
        }  
发表于 2014-1-11 16:24:02 | 显示全部楼层
已确认,会在  v4.0beta3 中修正。更新至:http://fineui.com/bbs/forum.php?mod=viewthread&tid=4171

@purplebolt,你这个修正不对,页面回发时会检查每个控件的数据是否改变,而无论本次回发是否当前控件触发的。
 楼主| 发表于 2014-1-13 12:35:41 | 显示全部楼层
老大真勤奋,期待新版{:soso_e113:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-29 15:32 , Processed in 0.054879 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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