Werte im GridView-Steuerelements textbox TemplateField
Habe ich eine asp.net Seite als Standard.aspx, und es ist der master-Seite, ist Site.master. In der Standard.aspx, ich habe ein gridview mit 3 datengebundene Felder und 1 Templatefield, und dann schleppte Sie ein Textfeld, in dieses templatefield.
Ich versuche die textbox-Werte für jede Zeile in dieser gridview-Steuerelement, verwenden Sie die FindControl-Methode, aber es ' s Rückkehr Nichts.
Hier ist der code, den ich verwende, um diese Werte abzurufen:
For Each gvr As GridViewRow In GridView1.Rows
Dim tb As TextBox = DirectCast(gvr.FindControl("TextBox1"), TextBox)
Dim txt As String = tb.Text
MsgBox(txt)
Next
Hinweis: ich bin mit masterPages, und ich denke das ist das problem verursacht.
[Bearbeiten]
In der Page_load-Ereignis, an das gridview gebunden, ich bin mit dem code:
GridView1.DataSource = f.xDa
GridView1.DataBind()
In der Button1, ich habe den code Hinzugefügt:
For Each gvr As GridViewRow In GridView1.Rows
Dim tb As TextBox = DirectCast(gvr.FindControl("TextBox1"), TextBox)
Dim txt As String = tb.Text
MsgBox(txt)
Next
Aber ich bin Immer eine leere textbox.
Danke an alle.
Ja, die Gridview funktioniert, mit dem code: GridView1.DataSource = f.xDa GridView1.DataBind() Aber, wenn ich geben Sie in die Textfelder, i cant get die Werte in Ihnen.... In diesem Fall bin ich mir immer eine leere Zeichenfolge in die msgbox.
Innerhalb welches Ereignis ist der code, der in Ihrer Frage ausgeführt?
In der Page_Load: GridView1.DataSource = f.xDa GridView1.DataBind() In einen Button namens Button1 ich den code: <code> Für Jede gvr Als GridViewRow In GridView1.Zeilen Dim tb As TextBox = DirectCast(gvr.FindControl("TextBox1"), TextBox) Dim txt As String = tb.Text MsgBox(txt) Next <code>
Bitte verwenden Sie die Schaltfläche "Bearbeiten" aktualisieren Sie Ihre Frage mit dem entsprechenden code. Es ist zu schwer zu begreifen, in den Kommentaren hier =)
InformationsquelleAutor Diego Oliveira | 2013-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie aktualisieren Sie Ihre
Page_Load
code:Durch die Zeit, die Ihr code wird an die
Button_Click
Ereignis, es hat schon besiedelt das GridView mit Daten aus Ihrer Datenbank (überschreiben, was Ihre Benutzer eingegeben werden in das Textfeld).Den code habe ich oben Hinzugefügt bewirkt, dass die Daten geladen werden, nur beim ersten mal - dann wird der ASP.NET Anzeigestatus behandelt sicherstellen, dass der Zustand des GridView-Steuerelements ist ständig up-to-date.
Der Kommentar, upvote, und akzeptieren, viel Dank =) ich bin froh, dass ich in der Lage war, Ihnen zu helfen. Ich würde sagen, wenn Sie in der Lage sind, "pay it forward" durch den Beitrag gute Antworten auf der Website als gut.
InformationsquelleAutor Josh Darnell
Ich hatte ein ähnliches problem, aber mein gridview nicht gerendert Page_Load so konnte ich nicht hinzufügen die "If not IsPostBack" Bindungen an die Page_Load-wie der SQL-dataset ich war noch nicht erklärt.
Statt die FindControl und aufrufen der textbox mit Namen, versuchen so etwas wie dies funktionieren könnte, wenn Sie nicht verwenden können, die Page_Load-gridview-databinding:
Die (0) in die Zellen(0), ist die Spalte Nummer in Ihrem gridview, die Sie zugreifen möchten. So zum Beispiel, Wenn "TextBox1" ist der 1. Spalte die Verwendung von Zellen(0), wenn es in der 2. Spalte die Verwendung von Zellen(1) und so weiter. Dies ermöglicht es der text in der textbox abgerufen werden, ohne dass Sie einen zusätzlichen Abschnitt in der Page_Load -
InformationsquelleAutor Jeremiah Allen