Newsgroup: it.comp.www.asp
Titolo: Problemi con l'ordinamento di una datagrid

Salve,
ho creato una DataGrid con una colonna per la selezione dell'account,
cosicché non appena selezionato apparirà una seconda tabella che mi
permetterà di visualizzare i dati di quell'account, e un'altra che
visualizza il nome utente dello user.
La visualizzazione di tutti i nomi utente, però, appare in modo casuale
senza un ordine.
Quello che vorrei fare è mettere in ordine tutti i nomi utente per
facilitare la lettura (visto che si tratta di quasi 700 utenti).
Ho provato e riprovato, seguendo le indicazioni, che trovavo su libri e su
internet, ma tutte fanno riferimento a tabelle create da SELECT di SQL,
però pur provando, non riesco a farle funzionare.
Potete aiutarmi per piacere???
Vi ringrazio anticipatamente per la vs. disponibilità.
Adriano
----------------------------------------------------------------------------
-------------------------------------
La pagina aspx che ho creato è molto semplice e questa è la costruzione
della datagrid (manca la seconda tabella):
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 1px; POSITION:
absolute; TOP: 1px" runat="server" AllowSorting="True" Height="168px"
Width="264px" BorderColor="White" BorderStyle="Ridge" CellSpacing="1"
BorderWidth="2px" BackColor="White" CellPadding="3" GridLines="None">
    <SelectedItemStyle Font-Bold="True" ForeColor="White"
BackColor="#9471DE"></SelectedItemStyle>
    <ItemStyle ForeColor="Black" BackColor="#DEDFDE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="#E7E7FF"
BackColor="#4A3C8C"></HeaderStyle>
    <FooterStyle ForeColor="Black" BackColor="#C6C3C6"></FooterStyle>
    <Columns>
     <asp:ButtonColumn Text="Select" CommandName="Select">
      <ItemStyle ForeColor="#3300FF"></ItemStyle>
     </asp:ButtonColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Right" ForeColor="Black"
BackColor="#C6C3C6"></PagerStyle>
   </asp:DataGrid>
    ...
</form>
----------------------------------------------------------------------------
-------------------------------------
La pagina apsx.cs invece è più macchinosa ma il risultato è eccellente
(manca la visualizzazione della seconda tabella):
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.DirectoryServices;
namespace ADSI
{
 /// <summary>
 /// Descrizione di riepilogo per adsi_vista.
 /// </summary>
 public class ElencoUtentiTabella : 
System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.DataGrid DataGrid2;
  protected System.Web.UI.WebControls.DataGrid DataGrid1;
  protected DirectoryEntry de;
  protected DataSet ds;
  private void Page_Load(object sender, System.EventArgs e)
  {
   DirectorySearcher src = new
DirectorySearcher("(&(objectCategory=Person)(objectClass=user))");
   //DataTable for users
   DataTable tbUsers = new DataTable("users");
   //Create Columns for DataTable.
   tbUsers.Columns.Add("UserName",System.Type.GetType("System.String"));
   ds.Tables.Add(tbUsers);
   //DataTable for properties
   DataTable tbProperties = new DataTable("properties");
   //Create Columns for DataTable.
tbProperties.Columns.Add("PropertyName",System.Type.GetType("System.String")
);
tbProperties.Columns.Add("PropertyValue",System.Type.GetType("System.String"
));
   ds.Tables.Add(tbProperties);
   src.SearchRoot = de;
   src.SearchScope = SearchScope.Subtree;
   foreach(SearchResult res in src.FindAll())
   {
    System.Collections.IDictionaryEnumerator ien =
res.Properties.GetEnumerator();
    DataRow topRow = ds.Tables["users"].NewRow();
    topRow["UserName"] =res.Properties["Name"][0];
    ds.Tables["users"].Rows.Add(topRow);
   }
   DataGrid1.DataSource = ds.Tables["users"];
   DataGrid1.DataBind();
  }
  #region Web Form Designer generated code
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: This call is required by the 
ASP.NET
 Web Form Designer.
   //
   InitializeComponent();
   base.OnInit(e);
  }
  /// <summary>
  /// Required method for Designer support - do not modify
  /// the contents of this method with the code editor.
  /// </summary>
  private void InitializeComponent()
  {
 
this.de
 = new
System.DirectoryServices.DirectoryEntry("LDAP://DOMINIO/CN=Users,DC=DOMINIO,
DC=IT","administrator","prova123");
   this.ds = new System.Data.DataSet();
   ((System.ComponentModel.ISupportInitialize)(this.ds)).BeginInit();
   this.DataGrid1.SelectedIndexChanged += new
System.EventHandler(this.DataGrid1_SelectedIndexChanged);
   //
   // ds
   //
   this.ds.DataSetName = "NewDataSet";
   this.ds.Locale = new System.Globalization.CultureInfo("en-AU");
   this.Load += new System.EventHandler(this.Page_Load);
   ((System.ComponentModel.ISupportInitialize)(this.ds)).EndInit();
  }
  #endregion
...

 Adriano
Utilizza il DataView per il popolamento dei dati nel datagrid:
dim dv as new dataview(tuodataset.Tables("nome tabella")
dv.sort="nomecampo asc,nomecampo2, desc"
[tuo_data_grid].DataSource=dv
....
Ciao
--
AZ