|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我之所以想学。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标记,从而隐藏父类中同名的成员。 |
|