我在asp.net和c#.net应用程序中有一个包含多个页面的devexpress网格。我想在网格的所有页面中只进行2次选择。如果我在所有页面中选择超过2行,则应显示警告
如何获取在devexpress网格的所有页面中选择的行数?
答案 0 :(得分:0)
我们建议您使用以下方法:
1)使用CustomJSProperties事件将有关当前所选记录的信息从服务器端传递到客户端。 2)使用ASPxGridView的客户端Init和SelectionChanged事件来管理选择。这是代码:
// CS
protected void grid_CustomJSProperties(object sender, ASPxGridViewClientJSPropertiesEventArgs e) {
e.Properties["cpSelectionCount"] = (sender as ASPxGridView).Selection.Count.ToString();
}
// JS
<script type="text/javascript">
var selectedCount = 0;
</script>
...
<dx:ASPxGridView ID="grid" runat="server" AutoGenerateColumns="False" KeyFieldName="CategoryID" OnCustomJSProperties="grid_CustomJSProperties" DataSourceID="AccessDataSource1">
<ClientSideEvents SelectionChanged="function(s,e) {
if(e.isChangedOnServer)
return;
if(e.isSelected)
selectedCount += 1;
else
selectedCount -= 1;
if(e.isSelected && selectedCount > 2) {
alert('You selected more than 2 records');
s.UnselectRowOnPage(e.visibleIndex);
return;
}
}"
Init="function(s,e) {
selectedCount = parseInt(s.cpSelectionCount);
}"/>
<Columns>
...
</Columns>
</dx:ASPxGridView>