FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 10359|回复: 10
打印 上一主题 下一主题

【非BUG】开原版是否支持客户端 grid afteredit 事件触发

[复制链接]
跳转到指定楼层
楼主
发表于 2015-7-4 12:08:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在grid 里添加了两个    Listener , 但是只有onGridBeforeEdit 可以触发成功,onGridAfterEdit 没法触发成功,
不清楚什么原因?
<Listeners>        
                <fistener Event="afteredit" Handler="onGridAfterEdit" />
                <fistener Event="beforeedit" Handler="onGridBeforeEdit" />
        </Listeners>

      function onGridAfterEdit(event, value, params) {
            alert('AfterEdit')
            var me = this, columnId = params.columnId, rowId = params.rowId;
            if (columnId === 'Name' || columnId === 'MathScore') {
                //  var chineseScore = me.getCellValue(rowId, 'ChineseScore');
                var mathScore = me.getCellValue(rowId, 'Title');
                alert(mathScore);
                //  me.updateCellValue(rowId, 'TotalScore', chineseScore + mathScore);

                // updateSummary(me);
            }
        }

        function onGridBeforeEdit(event, value, params) {
            alert('BeforeEdit')
            // 取消单元格编辑
            //            if (params.td.hasClass('custom-cell-no-edit')) {
            //                return false;
            //            }
            return true;
        }

沙发
发表于 2015-7-4 13:48:10 | 只看该作者
支持,你用的FineUI哪个版本?
板凳
 楼主| 发表于 2015-7-4 19:00:15 | 只看该作者
谢谢,答复,我用的4.1.6 这个版本
地板
 楼主| 发表于 2015-7-5 21:02:06 | 只看该作者
谢谢,答复, 麻烦抽空给个答复,这是不是开源版的bug?!!!
5#
 楼主| 发表于 2015-7-6 12:32:29 | 只看该作者
谢谢,答复, 麻烦抽空给个答复,这是不是开源版的bug?!!!
6#
发表于 2015-7-6 13:48:53 | 只看该作者
可能是Grid的事件触发较多,引起触发先后不一致。比如行选择事件、单元格失焦事件等
7#
 楼主| 发表于 2015-7-6 14:03:03 | 只看该作者
xxdddail 发表于 2015-7-6 13:48
可能是Grid的事件触发较多,引起触发先后不一致。比如行选择事件、单元格失焦事件等 ...

   <f:Grid ID="Grid_Notice" Title="公告信息" EnableCollapse="true" PageSize="10" ShowBorder="true"
        ShowHeader="false" AllowPaging="true" AutoScroll="true" runat="server" EnableCheckBoxSelect="true"
        ShowPagingMessage="true" DataKeyNames="OID" IsDatabasePaging="true" OnPageIndexChange="Grid_Notice_PageIndexChange"
        AllowCellEditing="true"  ClicksToEdit="1" RegionPosition="Center"   >
        <Columns>
            <f:RowNumberField />
            <f:BoundField Width="100px" ColumnID="ValidDate" DataField="ValidDate" DataFormatString="{0:yyyy-MM-dd}"
                HeaderText="公告日期" />
      
            <f:TemplateField HeaderText="标题" ExpandUnusedSpace="true" ColumnID="Title">
                <ItemTemplate>
                    <a href="javascript:<%# GetNoticeUrl(Eval("OID")) %>">
                        <%# Eval("Title") %></a>
                </ItemTemplate>
            </f:TemplateField>

            <f:RenderField Width="100px" ColumnID="Name" DataField="Title" FieldType="String"
                HeaderText="姓名" >
                <Editor>
                    <f:TriggerBox ID="tbxMyBox1" ShowLabel="false" OnTriggerClick="tbxMyBox1_TriggerClick"
                        TriggerIcon="Search" EmptyText="打开弹出窗口" runat="server" >
                    </f:TriggerBox>
                </Editor>
            </f:RenderField>
            <f:RenderField Width="100px" ColumnID="Name12" DataField="Title" FieldType="Auto"
                HeaderText="测试" >
                <Editor>
                    <f:NumberBox ID="nb123" runat="server" ></f:NumberBox>
                </Editor>
            </f:RenderField>
        </Columns>
        <ageItems>
            <f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
            </f:ToolbarSeparator>
            <f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
            </f:ToolbarText>
            <fropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
                OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
                <fistItem Text="10" Value="10" />
                <fistItem Text="15" Value="15" />
                <fistItem Text="20" Value="20" />
            </fropDownList>
        </PageItems>
        <Listeners>        
                <fistener Event="afteredit" Handler="onGridAfterEdit" />
                <fistener Event="beforeedit" Handler="onGridBeforeEdit" />
        </Listeners>
    </f:Grid>

谢谢答复,上面是我的grid的代码, 很干净,没有添加别的事件。就是没法触发onGridAfterEdit ,onGridBeforeEdit就可以
8#
发表于 2015-7-6 22:49:18 | 只看该作者

请自行查阅 extjs 文档,单元格编辑结束的事件名称是 edit 而不是 afteredit,所以上面的代码应该是:
  1. <Listeners>
  2.                 <f:Listener Event="edit" Handler="onGridAfterEdit" />
  3.                 <f:Listener Event="beforeedit" Handler="onGridBeforeEdit" />
  4.             </Listeners>
复制代码
9#
 楼主| 发表于 2015-7-7 13:23:55 | 只看该作者
sanshi 发表于 2015-7-6 22:49
请自行查阅 extjs 文档,单元格编辑结束的事件名称是 edit 而不是 afteredit,所以上面的代码应该是:
...

谢谢答复,确实如此,原来的写法是我copy的专业版的代码,专业版的源代码就是用的afteredit, 你们说过开原版可以直接过渡到专业版,所以我以为两边写法是一样的。
   不过问题就出来了,后续我们如果换成专业版开发,如果用到这个事件(或其他开原版和专业版方法不一致的方法),所有的页面上就都要改代码了,并不是简单的把fineui.dll替换就ok了。
10#
发表于 2015-7-7 14:53:42 | 只看该作者
owenhy 发表于 2015-7-7 13:23
谢谢答复,确实如此,原来的写法是我copy的专业版的代码,专业版的源代码就是用的afteredit, 你们说过开 ...

我们尽量保持专业版和开源版兼容,但是也可能会出现你遇到的情况,毕竟我们是对整个底层JavaScript库进行的重写,可能会有照顾不到的地方。

在开源版的官网示例中,我们没有用到afteredit的客户端事件,而服务器端事件的名称是OnAfterEdit,所以就在专业版中把这个客户端事件名称也改为 afteredit 了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-25 07:21 , Processed in 0.046753 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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