分享人:王炳钧
1. 简单的验证
应用场景:若需要在页面解锁某一段航班,点击解锁按钮时客户端js检验当前航班输入数据是否合法,若合法则进行数据库操作,若不合法,则停止。
常用ajax
响应服务器的方法,在该button的onclick方法中校验是否合法,若返回true,则调用后台处理函数。若返回false,则不执行后台方法。
如果左边return false 作为验证 右边则不执行。
2. LINQ中TakeWhile&SkipWhile
在用TakeWhile,SkipWhile前,先看一看常用的Take和Skip:
public static IEnumerable Take(this IEnumerable source, int count);
public static IEnumerable Skip(this IEnumerable source, int count);
Take将枚举出source中的前count个元素,返回给客户端.
Skip 则恰好相反,将跳过source中的前count个元素,枚举其余元素
TakeWhile 和 SkipWhile:
数据源
static List customers = new List {
new Customer { CustomerID=1,Name="woody1"},
new Customer { CustomerID=2,Name="woody2"},
new Customer { CustomerID=3,Name="woody3"},
new Customer { CustomerID=4,Name="woody1"}
};
在这个数据源的基础上,进行如下操作:
var cs1 = customers.TakeWhile(c => c.Name == "woody1");
var cs2 = customers.TakeWhile(c => c.Name == "woody2");
var cs3 = customers.SkipWhile(c => c.Name == "woody1");
var cs4 = customers.SkipWhile(c => c.Name == "woody2");
问题:cs1--cs4这四个IEnumerable
正确答案:
cs1 :woody1(CustomerID=1)
cs2 : 没有任何元素
cs3 :woody2 , woody3 , woody1(CustomerID=4)
cs4 :woody1(CustomerID=1),woody2,woody3,woody1(CustomerID=4)
TakeWhile对数据源进行枚举,从第一个开始判断,若返回true,则将该元素返回给客户端,并且继续向下进行枚举。但是,一旦值返回false的话,枚举就此打住,忽略剩下的所有元素。
SkipWhile也对数据源进行枚举, 从第一个开始判断, 若返回true,则跳过该元素,继续进行枚举操作。但是,一旦值返回为false,则该元素以后的所有元素,都不会再进行判断,而全部显示。
应用场景:业务部门根据备降航班来导出备降航班前后航班信息。查询某天所有航班信息,若有备降航班,则将起飞时间早于该航班的航班数据作为一个文件导出,来获取多个表格。