FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

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

提交BUG和建议若干

[复制链接]
跳转到指定楼层
楼主
发表于 2012-3-10 15:12:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先感谢三生石上为我们封装了这么好的控件,感谢你的无私奉献。我对你的景仰如滔滔江水,连绵不绝,又犹如黄河泛滥,一发不可收拾……{:soso_e113:}

我测试了大约有两周时间,做了N个测试页面,越来越喜欢ExtAspNet。因为喜欢,所以希望ExtAspNet能够越来越好。提出一些问题,为ExtAspNet尽一点微薄之力。

一、建议:PageManage的Theme全局统一。在切换主题时能自动保存到Cookie中,每个页面能够按照Cookie=>ageManager.Theme=>web.config配置的优先级自动应用。这样就不需要每个页面再去手工指定了。

二、建议:现在的Alert.Show不是模式提示窗,在弹出提示窗后,在点击确认按钮前,后面的脚本已经执行了。而alert是模式窗口,在确认前,后面的脚本是不执行的。
例如我原来在提示后将文本框设置焦点,正常执行:
alert('用户名或密码错误。');
txtUserName.focus();
换成ExtAspNet按正常逻辑尝试以下代码,按说脚本应该串联执行,但不成功:
Alert.Show("用户名或密码错误。");
txtUserName.Focus();
在弹出提示框后,焦点就已经设置了,点确认或敲回车后,焦点消失。
现在使用的变通方式:
ExtAspNet.Alert.Show("用户名或密码错误。", "提示", string.Format("X('{0}').focus(true, 100);", txtUserName.ClientID));

三、建议:模板绑定时支持Eval,而现在只能用DataBinder.Eval(Container.DataItem, "IsDisabled") 这种形式。
<ext:TemplateField SortField="IsDisabled" HeaderText="作废" Width="50px">
<ItemTemplate>
<%# (bool)DataBinder.Eval(Container.DataItem, "IsDisabled") ? "作废" : "" %>
</ItemTemplate>
</ext:TemplateField>

四、建议:Grid等组件在设计视图中显示Toolbar。在HTML视图中添加修改控件属性可以接受,但添加事件就比较麻烦了,而Toolbar中的控件往往需要添加事件。

五、建议:为Window组件添加Show、ShowModal、Hide方法,可以在后台代码中调用直接显示或隐藏Window。

六、建议:为Grid组件添加SortColumn属性。由于Grid可能经常进行设计变动, 前后顺序一变动ColumnIndex就需要调整,而按字段是比较稳定的,另外   ColumnIndex 和 SortDirection  在设计属性中没有出现。下面是我现在的变通实现:
// TODO:默认的排序列和排序方向
grid.SortColumnIndex = grid.Columns.SingleOrDefault(a => a.SortField == "OperatorDate").ColumnIndex;
grid.SortDirection = "DESC";

七:BUG:如果Grid.DataKeyNames="Id"为GUID类型,则绑定时不显示。
脚本报错:
A JSONArray must start with '['

这个是个BUG,Grid的DataKeys如果是GUID类型的字段,就会抛出这个异常。我的解决办法是把ExtAspNet源代码中GridRow.cs的第241行由:
DataKeys[j] = GetPropertyValue(keyNames[j]);
改为:
DataKeys[j] = GetPropertyValue(keyNames[j]).ToString();
重新编译后重新引用就可以了。

八、BUG:Grid的排序标记在翻页或绑定后消失。
http://bbs.extasp.net/forum.php?mod=viewthread&tid=108&extra=page%3D1
我在PageLoad事件中指定了Grid的排序字段列和排序方向,并对数据进行了绑定。Grid的排序列是显示排序标志的(上、下小箭头),点击列标题也是显示排序标志的,但在对Grid重新进行绑定之后,排序标志就不见了。
我试过只要改变SortColumnIndex、SortDirection的值,就会出现排序标志。这也是为什么第一次绑定或者手工点击列标题进行排序时是正常的。

九、BUG:在显示确认修改提示后,如果我点“取消”或“x”号,则每次点击新增显示Window并关闭时都显示确认修改提示。
主页面:wdwSave.OnClientCloseButtonClick = wdwSave.GetConfirmHidePostBackReference();

在编辑页面:btnClose.OnClientClick = ExtAspNet.ActiveWindow.GetConfirmHidePostBackReference();

我想通过这样来确保不论是点击关闭按钮还是点击Window右上角关闭按钮的关闭,都能够检查是否已修改了编辑窗体。现在点关闭按钮btnClose是正常的,而点击Window右上角关闭按钮时,Window直接关闭而没有提示已被修改。在点击“新增”显示Window时,显示了确认修改提示。如果我点“取消”或“x”号,则每次点击新增显示Window并关闭时都显示确认修改提示。

十、BUG:Button的Menu.Hidden不起作用。如下面的使用帮助、关于菜单能正常显示。
<ext:Button ID="btnHelp" EnablePostBack="false" Icon="Help" Text="帮助" runat="server">
        <Menu runat="server" Hidden="true">
                <ext:MenuHyperLink ID="lnkHelp" runat="server" Text="使用帮助" Target="_blank" />
                <ext:MenuButton ID="btnAbout" runat="server" Text="关于" />
        </Menu>
</ext:Button>


沙发
发表于 2012-3-10 16:26:51 | 只看该作者
我再补充一条..  因为刚开始用EXTASPNET 我说的可能已经有考虑到了 只是我没发现而已
我现在想在后台做数据校验,按照现在的ALERT来做,发现问题,然后ALERT完了也就提交完了
我希望直接ALERT一下 然后后面的代码不再执行。

我以前用的ALERT带个参数,可以返回上一页,或者跳转到指定页面,或者关闭本窗体。是否考虑改进下,谢谢。
板凳
发表于 2012-3-10 18:07:31 | 只看该作者
赞!!!!!!
地板
发表于 2012-3-10 18:38:05 | 只看该作者
建议:为TreeNode添加parentNode属性。
5#
发表于 2012-3-12 14:56:00 | 只看该作者
{:soso_e179:}
6#
发表于 2012-3-12 15:40:02 | 只看该作者
{:soso_e142:}
7#
发表于 2012-4-8 18:01:10 | 只看该作者
一、建议:PageManage的Theme全局统一。在切换主题时能自动保存到Cookie中,每个页面能够按照Cookie=>ageManager.Theme=>web.config配置的优先级自动应用。这样就不需要每个页面再去手工指定了。

====暂时不改

二、建议:现在的Alert.Show不是模式提示窗,在弹出提示窗后,在点击确认按钮前,后面的脚本已经执行了。而alert是模式窗口,在确认前,后面的脚本是不执行的。
例如我原来在提示后将文本框设置焦点,正常执行:
alert('用户名或密码错误。');
txtUserName.focus();
换成ExtAspNet按正常逻辑尝试以下代码,按说脚本应该串联执行,但不成功:
Alert.Show("用户名或密码错误。");
txtUserName.Focus();
在弹出提示框后,焦点就已经设置了,点确认或敲回车后,焦点消失。
现在使用的变通方式:
ExtAspNet.Alert.Show("用户名或密码错误。", "提示", string.Format("X('{0}').focus(true, 100);", txtUserName.ClientID));

====这是没办法的,你的变通方法其实就是正确的做法。window.alert会阻塞JavaScript的执行,而我们弹出一个DIV层的做法不会阻塞JS的执行,只能采取回调的方式。


三、建议:模板绑定时支持Eval,而现在只能用DataBinder.Eval(Container.DataItem, "IsDisabled") 这种形式。
<ext:TemplateField SortField="IsDisabled" HeaderText="作废" Width="50px">
<ItemTemplate>
<%# (bool)DataBinder.Eval(Container.DataItem, "IsDisabled") ? "作废" : "" %>
</ItemTemplate>
</ext:TemplateField>

====新版已经支持Eval直接绑定数据


四、建议:Grid等组件在设计视图中显示Toolbar。在HTML视图中添加修改控件属性可以接受,但添加事件就比较麻烦了,而Toolbar中的控件往往需要添加事件。

=====设计时支持目前没精力添加,可以在写代码的时候参考示例代码。


五、建议:为Window组件添加Show、ShowModal、Hide方法,可以在后台代码中调用直接显示或隐藏Window。

=====现在在后台代码中只需直接设置Hidden属性就行了。参考示例:http://extasp.net/#/layout/window.aspx


六、建议:为Grid组件添加SortColumn属性。由于Grid可能经常进行设计变动, 前后顺序一变动ColumnIndex就需要调整,而按字段是比较稳定的,另外   ColumnIndex 和 SortDirection  在设计属性中没有出现。下面是我现在的变通实现:
// TODO:默认的排序列和排序方向
grid.SortColumnIndex = grid.Columns.SingleOrDefault(a => a.SortField == "OperatorDate").ColumnIndex;
grid.SortDirection = "DESC";

=====稍后再看

七:BUG:如果Grid.DataKeyNames="Id"为GUID类型,则绑定时不显示。
脚本报错:
A JSONArray must start with '['

这个是个BUG,Grid的DataKeys如果是GUID类型的字段,就会抛出这个异常。我的解决办法是把ExtAspNet源代码中GridRow.cs的第241行由:
DataKeys[j] = GetPropertyValue(keyNames[j]);
改为:
DataKeys[j] = GetPropertyValue(keyNames[j]).ToString();
重新编译后重新引用就可以了。


======新版本中已经修正。


八、BUG:Grid的排序标记在翻页或绑定后消失。
http://bbs.extasp.net/forum.php?mod=viewthread&tid=108&extra=page%3D1
我在PageLoad事件中指定了Grid的排序字段列和排序方向,并对数据进行了绑定。Grid的排序列是显示排序标志的(上、下小箭头),点击列标题也是显示排序标志的,但在对Grid重新进行绑定之后,排序标志就不见了。
我试过只要改变SortColumnIndex、SortDirection的值,就会出现排序标志。这也是为什么第一次绑定或者手工点击列标题进行排序时是正常的。

====翻页或重新绑定后数据变化了。。。。这个我有空再看下。


九、BUG:在显示确认修改提示后,如果我点“取消”或“x”号,则每次点击新增显示Window并关闭时都显示确认修改提示。
主页面:wdwSave.OnClientCloseButtonClick = wdwSave.GetConfirmHidePostBackReference();

在编辑页面:btnClose.OnClientClick = ExtAspNet.ActiveWindow.GetConfirmHidePostBackReference();

我想通过这样来确保不论是点击关闭按钮还是点击Window右上角关闭按钮的关闭,都能够检查是否已修改了编辑窗体。现在点关闭按钮btnClose是正常的,而点击Window右上角关闭按钮时,Window直接关闭而没有提示已被修改。在点击“新增”显示Window时,显示了确认修改提示。如果我点“取消”或“x”号,则每次点击新增显示Window并关闭时都显示确认修改提示。

=====这个在新版本也修正了吧,你确认下。


十、BUG:Button的Menu.Hidden不起作用。如下面的使用帮助、关于菜单能正常显示。
<ext:Button ID="btnHelp" EnablePostBack="false" Icon="Help" Text="帮助" runat="server">
        <Menu runat="server" Hidden="true">
                <ext:MenuHyperLink ID="lnkHelp" runat="server" Text="使用帮助" Target="_blank" />
                <ext:MenuButton ID="btnAbout" runat="server" Text="关于" />
        </Menu>
</ext:Button>

=====Hidden属性的问题在新版本中也修正了。



==============
再次谢谢楼主,其实这里面提到了很多BUG,只是当时没忙过来,现在才缓过神来。。。。{:soso__8961432591078930798_3:}



8#
发表于 2012-4-8 20:38:44 | 只看该作者
第六条和第八条都修正了,ChangeSet:75897

-可以直接在ASPX中指定SortDirection和SortColumnIndex,同时增加SortColumn属性(杜志彬)。
-修正Grid的排序标记在翻页或绑定后消失的问题(杜志彬)。
9#
发表于 2012-4-8 21:51:42 | 只看该作者
sanshi 发表于 2012-4-8 20:38
第六条和第八条都修正了,ChangeSet:75897

-可以直接在ASPX中指定SortDirection和SortColumnIndex,同时 ...

sanshi辛苦了
10#
发表于 2012-4-19 10:24:53 | 只看该作者
mark,学习中
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-24 17:38 , Processed in 0.049254 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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