FineUI 官方论坛

标题: 【非BUG】开原版是否支持客户端 grid afteredit 事件触发 [打印本页]

作者: owenhy    时间: 2015-7-4 12:08
标题: 【非BUG】开原版是否支持客户端 grid afteredit 事件触发
在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;
        }


作者: sanshi    时间: 2015-7-4 13:48
支持,你用的FineUI哪个版本?
作者: owenhy    时间: 2015-7-4 19:00
谢谢,答复,我用的4.1.6 这个版本
作者: owenhy    时间: 2015-7-5 21:02
谢谢,答复, 麻烦抽空给个答复,这是不是开源版的bug?!!!
作者: owenhy    时间: 2015-7-6 12:32
谢谢,答复, 麻烦抽空给个答复,这是不是开源版的bug?!!!
作者: xxdddail    时间: 2015-7-6 13:48
可能是Grid的事件触发较多,引起触发先后不一致。比如行选择事件、单元格失焦事件等
作者: owenhy    时间: 2015-7-6 14: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就可以
作者: sanshi    时间: 2015-7-6 22:49
owenhy 发表于 2015-7-6 14:03
...

请自行查阅 extjs 文档,单元格编辑结束的事件名称是 edit 而不是 afteredit,所以上面的代码应该是:
  1. <Listeners>
  2.                 <f:Listener Event="edit" Handler="onGridAfterEdit" />
  3.                 <f:Listener Event="beforeedit" Handler="onGridBeforeEdit" />
  4.             </Listeners>
复制代码

作者: owenhy    时间: 2015-7-7 13:23
sanshi 发表于 2015-7-6 22:49
请自行查阅 extjs 文档,单元格编辑结束的事件名称是 edit 而不是 afteredit,所以上面的代码应该是:
...

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

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

在开源版的官网示例中,我们没有用到afteredit的客户端事件,而服务器端事件的名称是OnAfterEdit,所以就在专业版中把这个客户端事件名称也改为 afteredit 了
作者: owenhy    时间: 2015-7-7 14:55
sanshi 发表于 2015-7-7 14:53
我们尽量保持专业版和开源版兼容,但是也可能会出现你遇到的情况,毕竟我们是对整个底层JavaScript库进行 ...

都是搞软件的,完全理解。重新改写也不容易。只是给个善意的提醒




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4