2009-05-08 9 views
0

J'utilise un gridview et ont doivent définir une expression de tri, je me sers:tri gridviews et SortExpression

<asp:TemplateField HeaderText="Order Name" SortExpression="OrderId"> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%# OrderName(((DataLayer.Car)Container.DataItem).OrderId) %>' /> 
       </ItemTemplate> 
       <ItemStyle Width="120px" /> 
      </asp:TemplateField> 

Mais je veux plutôt trier par le nom que je reçois de la OrderId que le réel OrderId - mais je n'ai pas été en mesure de savoir si c'est faisable, et comment?

Répondre

0

Vous devez utiliser le nom de champ des résultats de données que vous avez dans votre grille. Si vous avez le champ dans les résultats, utilisez-le.

0

Si vous avez besoin de prendre en charge la pagination (et que vous ne stockez pas l'ensemble des résultats en session ou viewstate ou autre), vous ne pourrez pas parcourir les résultats triés par nom d'utilisateur.

Tant que votre resultset est petit (et que vous le stockez), vous pouvez créer un nouvel objet qui contient le OrderID et le OrderName, le remplir avec les ID de commande et d'ordonne, puis lier à cela. La meilleure chose à faire serait d'avoir votre nom d'utilisateur provenant de votre source de données si possible.