2010-07-06 5 views

Répondre

0

Nous vous suggérons d'utiliser l'approche suivante:

1) transmettre les informations sur les enregistrements sélectionnés à partir du côté du serveur à côté client en utilisant l'événement CustomJSProperties. 2) utiliser les événements Init et SelectionChanged du côté client ASPxGridView pour gérer la sélection. Voici le code:

// 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 &amp;&amp; selectedCount &gt; 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>