来一篇关于NET的当SmartGrid中数据变更时修正另外一个SmartGrid中指定命据示例
我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)本章演示在页面上一个SmartGrid中的数据变更时,删除别的一个SmartGrid中与该SmartGrid中变更的数据反复数据的示例。起首我们在页面上放两个SmartGrid控件,ID分离为SmartGrid1与SmartGrid2,代码以下:
<body>
<formid="form1"runat="server">
<SmartWeb:SmartGridID="SmartGrid1"runat="server"ColumnSizeable="true"ColumnMovable="true"
Height="200px"ReadOnly="false"DataKeyField="ID"Width="300px"AllowDelete="true"
AllowAdd="true"OnRowDataCheck="myRowDataCheck">
<Columns>
<SmartWeb:TextBoxColumnColumnName="A"HeaderText="A"/>
<SmartWeb:TextBoxColumnColumnName="B"HeaderText="B"/>
</Columns>
</SmartWeb:SmartGrid>
<br/>
<br/>
<SmartWeb:SmartGridID="SmartGrid2"runat="server"ColumnSizeable="true"ColumnMovable="true"
Height="200px"ReadOnly="false"DataKeyField="ID"Width="300px"AllowDelete="true"
AllowAdd="true">
<Columns>
<SmartWeb:TextBoxColumnColumnName="A"HeaderText="A"/>
<SmartWeb:TextBoxColumnColumnName="B"HeaderText="B"/>
</Columns>
</SmartWeb:SmartGrid>
</form>
</body>
然后我们要明白"反复的数据"这个观点,所谓反复的数据,一定是指数据的主键值反复了,以是我们要先明白究竟是那些列的数据反复了我们就认定这一行的数据是反复的。在本例中,我们的假定A列为主键列,只需A列的值反复了,那末我们就以为该行的数占有反复了。假如人人在本人的项目中是多个列的组合主键,那末也只必要稍稍改动前面的js就好了。
在下面的代码中能够看到,我们为SmartGrid1设置了myRowDataCheck事务,该事务是行考证事务,该事务申明以下:
在编纂形态下,用户完成行的编纂后分开以后行时,SmartGrid触发OnRowDataCheck剧本事务,程序员能够呼应该事务以对用户的录进举行校验。详细能够看以下链接:
SmartGrid控件利用教程(二)-前台剧本编程
然后完成myRowDataCheck事务中的代码:
<scripttype="text/javascript"language="javascript">
functionmyRowDataCheck(grid,ev){
varkeyvalue=grid.getCellValue(grid.row,"A");
vargrid_SmartGrid2=document.getElementById(<%=this.SmartGrid2.ClientID%>);
vargrid_SmartGrid2_keyvalue;
for(vari=0;i<grid_SmartGrid2.rowCount;i++){
grid_SmartGrid2_keyvalue=grid_SmartGrid2.getCellValue(i,"A");
if(grid_SmartGrid2_keyvalue=keyvalue){
grid_SmartGrid2.delRowForced(i);
grid_SmartGrid2.focus(0);
grid_SmartGrid2.blur(0);
}
}
}
</script>
下面的代码应当对照简单了解,次要解说一下
grid_SmartGrid2.focus(0);
grid_SmartGrid2.blur(0);
这两行代码,原本这两行代码是不必要的,但由于假如在删除行后不从头为SmartGrid2设置核心,它被删除的行不会即刻消散,要SmartGrid2再次取得核心时才会消散,这应当也算是SmartGrid控件的一个bug吧。
上面是js用到的两个办法解说:
1,delRowForced:强迫删除指定行
语法:delRowForced(introwIndex)
删除行后SmartGrid会主动跳到下一行。假如rowIndex<0或rowIndex>总行数–1,则不实行删除。
2,getCellValue:SmartGrid前台栏位取值办法
语法:getCellValue(introwIndex,stringcolName)
下面两个办法详细解说能够检察:SmartGrid教程(四):数据与行操纵
效果演示:
1,先为SmartGrid2增加两行数据,以下图:
2,再为SmartGrid1增加一行数据,该行数据的A列的值为a,即与SmartGrid2的第一行的A列的值一样,增加完后,鼠标移到第二行,我们会发明SmartGrid2的第一行的数据被主动删除,以下图:
至此,本章功效完成!对于new隐藏成员的作用,往往是出于使用了一个第三方类库,而你又无法获得这个类库的源代码,当你继承这个类库的某个类时,你需要重新实现其中的一个方法,而又需要与父类中的函数使用同样的函数,这是就需要在自定义的子类中把那个同名函数(或成员)加上new标记,从而隐藏父类中同名的成员。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 众所周知,Windows以易用而出名,也因此占据不少的服务器市场。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
页:
[1]