ASP.NET-FineUI开发实践-15

简介: 1.按条件控制Grid不可编辑     Grid编辑其实用到的不多...但是也有要控制权限或者其他条件不能编辑的情况其实挺简单,学过extjs的知道,我现在也只是写前台了,没有写到后台事件,有时间再说吧,如果条件是服务器判断可以参考官网的给行和列加样式的例子,轻轻点我就转到了 我这么好心就吧源码贴出来吧   1 F.

1.按条件控制Grid不可编辑

    Grid编辑其实用到的不多...但是也有要控制权限或者其他条件不能编辑的情况其实挺简单,学过extjs的知道,我现在也只是写前台了,没有写到后台事件,有时间再说吧,如果条件是服务器判断可以参考官网的给行和列加样式的例子,轻轻点我就转到了
我这么好心就吧源码贴出来吧
 
 1         F.ready(function () {
 2             F('<% = Grid1.ClientID %>').on('beforeedit', function (editor, e) {
 3                 //判断数据,注意是ColumnID
 4                 if (e.record.get('Gender') == '1') {
 5                     F.alert('你是男的你忘了?不能编辑的');
 6                     return false;
 7                 }
 8                 //判断字段,也是ColumnID
 9                 else if (e.field != 'Name') {
10                     F.alert('女的就改个名得了呗...只能编辑性名列');
11                     return false;
12                 }
13                 //判断行号
14                 else if (e.rowIdx == 1) { 
15                     return false;
16                 }
17                 //判断列号
18                 else if (e.colIdx == 1) { 
19                     return false;
20                 }
21             });
22         });
注意  : return false; 就是取消编辑,beforeedit就是编辑前事件,么么哒
 
2.禁止行选择事件
    禁止指定行选择也有这个需求,也没写特别好,要自己学下,同样考虑分页和服务器条件的话要参考例子【不要用力点我就转到了
放出源码
 
1 <f:HiddenField ID="highlightRows" Text="1,2,4" runat="server">
2 </f:HiddenField>
 1 <script src="../res/js/jquery.min.js"></script>
 2      <script>
 3          var highlightRowsClientID = '<%= highlightRows.ClientID %>';
 4          var gridClientID = '<%= Grid1.ClientID %>';
 5          function disabledRowcheck() {
 6              // 增加延迟,等待HiddenField更新完毕
 7              window.setTimeout(function () {
 8                  var highlightRows = F(highlightRowsClientID);
 9                  var grid = F(gridClientID);
10                  $(grid.el.dom).find('.x-grid-cell-row-checker.x-item-disabled').removeClass("x-item-disabled");
11                  $.each(highlightRows.getValue().split(','), function (index, item) {
12                      if (item !== '') {
13                          var row = grid.getView().getNode(parseInt(item, 10));
14                          $(row).find('.x-grid-cell-row-checker').addClass('x-item-disabled');
15                      }
16                  });
17              }, 100);
18          }
19          F.ready(function () {
20              F('<% = Grid1.ClientID %>').on('beforeselect', function (t, record, index, e) {
21                  var highlightRows = eval("[" + F(highlightRowsClientID).getValue() + "]");
22                  if (highlightRows.indexOf(index) >= 0) {
23                      F.alert('这行不让选择了');
24                      return false;
25                  }
26                  else { return true; }
27              });
28              F('<% = Grid1.ClientID %>').on('columnhide', function () {
29                  disabledRowcheck();
30              });
31              F('<% = Grid1.ClientID %>').on('columnshow', function () {
32                  disabledRowcheck();
33              });
34              F('<% = Grid1.ClientID %>').getStore().on('refresh', function () {
35                  disabledRowcheck();
36              });
37              disabledRowcheck();
38          });
39     </script>
我是仿照例子写了 个 disabledRowcheck 方法,移出和新增了 x-item-disabled 样式,是内置的,加上了还点效果,禁止编辑也可以这么写,beforeselect 事件就是选择之前的事件,注意return ,disabledRowcheck 分别在 列隐藏,列显示,刷新事件中触发, 这是由于这几个事件都会重新绘制HTML
以上版本为 4.1.5 ,只是应用了几个extjs 的事件,其他的都来自官方示例,我也就是给出个提示,大家千万不要跪着看我的博客
目录
相关文章
|
14天前
|
设计模式 开发框架 JavaScript
基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!
基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
113 3
|
14天前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
14天前
|
开发框架 JavaScript 前端开发
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
|
2月前
|
JSON C# 开发者
C#语言新特性深度剖析:提升你的.NET开发效率
【10月更文挑战第15天】C#语言凭借其强大的功能和易用性深受开发者喜爱。随着.NET平台的演进,C#不断引入新特性,如C# 7.0的模式匹配和C# 8.0的异步流,显著提升了开发效率和代码可维护性。本文将深入探讨这些新特性,助力开发者在.NET开发中更高效地利用它们。
36 1
|
2月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
2月前
|
C# Windows
一款基于.NET开发的简易高效的文件转换器
一款基于.NET开发的简易高效的文件转换器
|
前端开发 API 数据库
ASP.NET-FineUI开发实践-9(三)
1. TextChanged事件前台触发回发后台,接上文,先给TextBox1加上事件,看看是怎么生成出来的, 注意AutoPostBack="true",找源代码,f4多出了个 listeners: { change: function () { ...
845 0
|
JavaScript API
ASP.NET-FineUI开发实践-9(二)
其实我也不会,老实教人学怕误人子弟,但是抱着毁人不倦的精神还是糊弄糊弄个别小白吧,最起码能加点原创。 下面以表单为例,打开官方项目,版本为FineUI_4.1.1,打开form_compare页,右键在浏览器中查看,右键查看源文件,这次要做的是前台通过按钮点击生成form及与后台的交互。
865 0
|
前端开发 JavaScript
ASP.NET-FineUI开发实践-8(二)
把上回的做一些改进 1.点击grid2的行改变TriggerBox1的值 var v = $(item).find('.x-grid-cell-Name div.
808 0