2009-04-08 11 views
0

Ich habe derzeit eine Gridview, dieKonvertieren Gridview-Spalte von ID zu String in ItemTemplate

TypeID, Name, Beschreibung anzeigt.

Ich möchte den tatsächlichen Typnamen anstelle der TypeID in der Gridview anzeigen. Ich habe diese Funktion erstellt, die die ID aufnimmt und den Namen zurückgibt, aber ich habe Probleme damit. Es gibt 15-20 verschiedene Typen. Wie wandle ich die TypeID in einen Typnamen um, so dass er angezeigt wird, wenn die Gridview gerendert wird.

protected string GetGenericTypeByID(int genericTypeID) 
     { 
      string genericTypeName; 

      GenericType.Generic_TypeDataTable genericTypeNameDS = new GenericType.Generic_TypeDataTable(); 
      genericTypeNameDS = GenericBO.Get_GenericTypeByID(genericTypeID); 

      genericTypeName = genericTypeNameDS[0]["Generic_Type_Name"].ToString(); 









      return genericTypeName; 

     } 

Ich dachte, ich die Funktion in der ItemTemplate zu verwenden wäre in der Lage, aber es scheint schwieriger zu sein, dass ich

dachte
<ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%# Bind("GetGenericTypeByID("Generic_Type_ID")")%>'></asp:Label> 
       </ItemTemplate> 

Dank an alle, die mir dieses Problem lösen half. Ich endete mit der folgenden Methode und es funktioniert perfekt. GetGenericTypeByID (Convert.ToInt32 (Eval ("Generic_Type_ID")))

+0

Also ... was ist die Frage? – womp

Antwort

1

Sie haben den Aufruf 'bind/eval' und Methodenaufruf auf den Kopf gestellt.
Siehe Using Method inside a DataGrid or GridView TemplateField

<asp:TemplateField HeaderText=”Name”> 
<ItemTemplate> 
    <a href='<%# FormatUrl(Eval(”email1″).ToString())%>'><%# Eval(”fname”) %>,&nbsp;<%# Eval(”lname”) %></a> 
</ItemTemplate> 

mit der Funktion Wesen 'FormatUrl':

public string FormatUrl(string email) 
{ 
    return “mailto:” + email; 
} 
0

Erstellen Sie eine schreibgeschützte Eigenschaft für die Zeilenklasse, die Sie zum Ausfüllen des Rasters verwenden, und rufen Sie diese Eigenschaft zum Zurückgeben der Ergebnisse Ihrer Funktion ab .

+0

Dies funktioniert nur, wenn Sie eine Datenbindung an eine Liste wie zB haben, wobei T Ihre Zeilenklasse ist. Wenn Sie auf eine SQL-Datenmenge zugreifen, ist dies keine große Hilfe. – Chris

1

Sind Sie auf ein Label-Tag begrenzt? Wenn nicht, versucht Erweiterung auf David Haust Antwort folgende:

<ItemTemplate> 
    <%#GetGenericTypeByID(Eval(Generic_Type_ID))%> 
</ItemTemplate>