C#, telerik grid-Zelle mit dem Wert aus Spalte Vorlage
Ich habe ein grid-template-Spalte, die wie folgt definiert( um Zeit zu sparen und Raum werde ich nur die Spalte):
<telerik:GridTemplateColumn HeaderText="Id" Reorderable="true" SortExpression="Id" UniqueName="Id" DataField="Id">
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text='<%# Eval("Id") %>' />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadTextBox ID="txbId" Width="50px" runat="server" TextMode="SingleLine"
Text='<%# Bind("Id") %>' />
</EditItemTemplate>
<ItemStyle VerticalAlign="Top" />
</telerik:GridTemplateColumn>
Und ich wollen auf das PreRender-Ereignis, zu extrahieren Sie den Wert dieser Spalte
protected void RadGrid1_PreRender(object sender, System.EventArgs e)
{
//string selectedItem = ((GridDataItem)RadGrid1.SelectedItems[0])["Id"].Text;
foreach (GridDataItem item in RadGrid1.Items)
{
//not working
string k = item["Id"].Text;//is empty string
string key = (item["Id"].TemplateControl.FindControl("lblId") as RadTextBox).Text;//null pointer
}
Irgendeine Idee wie es zu lösen ist?
Thx a lot.
Kannst du das während Daten-Bindung, so dass Sie Zugriff auf jedes Element, wie es gebunden ist?
Ich werde es versuchen, aber wäre schön, habe es auf prerender, denn ich brauche zum ändern der QuickInfo für einige Spalten basierend auf den Wert aus der DB, und das ist nur möglich auf prerender!?. Die Komplikation kommt, wenn ich versuche, eine Vorlage verwenden, die Spalte :/
Ich werde es versuchen, aber wäre schön, habe es auf prerender, denn ich brauche zum ändern der QuickInfo für einige Spalten basierend auf den Wert aus der DB, und das ist nur möglich auf prerender!?. Die Komplikation kommt, wenn ich versuche, eine Vorlage verwenden, die Spalte :/
InformationsquelleAutor alinnemet | 2011-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, dass die Lösung ziemlich einfach ist, reagierte auf die telerik-forum:
InformationsquelleAutor alinnemet
Ich könnte falsch sein (wie ich bin nicht super vertraut mit dem Telerik control suite), aber normalerweise, Datenbindung Ereignisse nicht auftreten, bis nach der Kontrolle der PreRender-Ereignis. Sie haben DataBind früher, oder verschieben Sie Ihre Logik, um später in der Seite life cycle.
Was genau ist der item["Id"] sein soll, geben Sie? Ich sehe nur lblId und txbId, und wenn Sie nicht Bearbeiten, txbId sollte nicht existieren.
Sorry für die Reaktion so spät :)... item["Id"] sollte mir die eindeutige Id von jedem item aus dem Netz. Genau, txbId ist schlechtes Beispiel gibt, denn ich bin nicht bearbeitet, so werde ich den Beitrag editieren! Aber es sollte ein Weg, um Zugriff auf die Zelle, in der OnPreRender-Ereignis
Interessant...nicht sicher, warum es ist nicht verfügbar, solange das GridDataItem "Id". Könntest du in einer Schleife durch die Zeilen selbst und nehmen Sie einfach die Zelle, anstatt zu versuchen zu verwenden RadGrid.Elemente?
Ich wünschte, ich wissen, wie, 'Ursache, die die Zelle in einer Spalte Vorlage 🙂 na ja, ich habe dies geschrieben, auf die telerik-forum, also sollten Sie wohl wissen, aber noch keine Antwort. Wenn ich feedback von Ihnen, werde ich es hier posten zu können. Thx a lot.
InformationsquelleAutor Ian Pugsley
Versuchen
InformationsquelleAutor Bala R