2009-03-25 6 views

Antwort

5

Da die Website nicht mehr verfügbar, ist hier der Inhalt:

public static void SortDataGrid(object sender, MouseEventArgs e) 
    { 
     DataGrid.HitTestInfo hitTest; 
     DataTable dataTable; 
     DataView dataView; 
     string columnName; 
     DataGrid dataGrid; 

     // Use only left mouse button clicks 
     if (e.Button == MouseButtons.Left) 
     { 
      // Set dataGrid equal to the object that called this event handler 
      dataGrid = (DataGrid)sender; 

      // Perform a hit test to determine where the mousedown event occurred 
      hitTest = dataGrid.HitTest(e.X, e.Y); 

      // If the MouseDown event occurred on a column header, 
      // then perform the sorting operation. 
      if (hitTest.Type == DataGrid.HitTestType.ColumnHeader) 
      { 
       // Get the DataTable associated with this DataGrid. 
       dataTable = (DataTable)dataGrid.DataSource; 

       // Get the DataView associated with the DataTable. 
       dataView = dataTable.DefaultView; 

       // Get the name of the column that was clicked. 
       if (dataGrid.TableStyles.Count != 0) 
        columnName = dataGrid.TableStyles[0].GridColumnStyles[hitTest.Column].MappingName; 
       else 
        columnName = dataTable.Columns[hitTest.Column].ColumnName; 

       // If the sort property of the DataView is already the current 
       // column name, sort that column in descending order. 
       // Otherwise, sort on the column name. 
       if (dataView.Sort == columnName) 
        dataView.Sort = columnName + " DESC"; 
       else 
        dataView.Sort = columnName; 
      } 
     } 
    } 
+0

Danke für das Posten! Ich werde das bald ausprobieren, aber in VB.net. – etalon11