|
一、建议: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:}
|
|