2017-09-21 6 views
0

Ich habe einen Prozess, der Daten schwenkt, um Spalten basierend auf dem UniqueIdentifier-Schlüsselwert zu erstellen. Die sich ergebende Datentabelle hat Spaltennamen wie:Dynamische ItemTemplate basierend auf GUID-Spaltennamen erstellen

> PartNum 
> [DB1A6498-7CC6-4EA0-846A-9B6EAB771777] 

Der Anteil von ASP ist:

  <asp:TemplateField HeaderText="Part No."> 
       <ItemTemplate> 
        <asp:Label ID="lblPartNum" runat="server" Text='<%#Eval("PartNum") %>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Run Out"> 
       <ItemTemplate> 
        <asp:Label ID="lblRunOut" runat="server" Text='<%#Eval("DB1A6498-7CC6-4EA0-846A-9B6EAB771777") %>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 

Die Teilenummer zeigt ganz gut, aber Feld auf der Grundlage der uniqueID Ergebnisse in einer Nachricht:

DB1A6498-7CC6-4EA0-846A-9B6EAB771777/ is neither a DataColumn nor a DataRelation for table . 

Ich lese die Datentabellenspalten durch, um die Rasterspalten zu erstellen, die gut angezeigt werden, aber wenn versucht wird, ItemTemplate dynamisch zu erstellen, tritt der Fehler auf. Die Klammern "[]" um die eindeutige ID im Etikett herum zu platzieren, funktionierte ebenfalls nicht.

Alle Vorschläge werden sehr geschätzt. Danke

+1

Haben Sie doppelte Klammern versucht? Wenn der Spaltenname tatsächliche Klammern enthält, benötigen Sie möglicherweise [[DB1A6498-7CC6-4EA0-846A-9B6EAB771777]] - dies ist in SQL-Anweisungen häufig der Fall. –

+0

Wenn eine SQL-Anweisung dahinter steht, versuchen Sie, die Spalte mit einem anderen Namen zu versehen. Wählen Sie [DB1A6498-7CC6-4EA0-846A-9B6EAB771777] als GUIDColumn –

+0

. Es gibt definitiv etwas, das mit den Klammern in Verbindung steht. Wenn ich "x [[DB1A6498-7CC6-4EA0-846A-9B6EAB771777]]] y" für das Eval setze, sieht die Fehlermeldung die erste Klammer nicht. Wenn "[[DB1A6498-7CC6-4EA0-846A-9B6EAB771777]]" für Eval eingegeben wird, lautet die Fehlermeldung: "[DB1A6498-7CC6-4EA0-846A-9B6EAB771777", die nur eine der ersten beiden Klammern widerspiegelt. Kein Text am Ende, nachdem die erste der beiden Klammern erkannt wurde. Zeit für mich, in die Klammern mehr zu schauen. – Galactic

Antwort

0

Kevin ... Ihre Antwort führte mich den Weg der Klammern hinunter. Auf dieser Grundlage habe ich die Informationen über die Databinder mit dem Endergebnis ist, dass die Text-Eigenschaft des asp: Label liest:

Text='<%# DataBinder.GetPropertyValue(Container.DataItem,"[DB1A6498-7CC6-4EA0-846A-9B6EAB771777]") %>' 

Dies wird Daten aus den uniqueID Felder ohne Fehler anzeigt.

+0

Froh, es hat geklappt. –

Verwandte Themen