/ / (ASP.NET) Získanie hodnoty ovládacích prvkov PlaceHolder z postbacku - asp.net, Visual-Studio, formuláre, postback, zástupný symbol

(ASP.NET) Získanie hodnoty ovládacích prvkov PlaceHolder zo služby Postback - asp.net, vizuálne štúdio, formuláre, spätná väzba, zástupný symbol

Základné informácie

Mám 2 ovládacie prvky, ktoré boli vytvorenédynamicky (sú vo vnútri zástupného symbolu). Tlačidlo na odoslanie formulára bolo tiež vytvorené dynamicky. Na objasnenie chcem získať hodnotu dynamicky vytvorených polí PO stlačení tlačidla.

Problém

Pri použití požiadavky.forma stále dostávam nulové hodnoty. Snažil som sa statický ClientIDMode, ale problém pretrváva. Tiež som sa pokúsil jednoducho použiť metódu PLACEHOLDER1.FindControll, ale vráti sa tiež null

CODE (Kde sa pokúšam načítať hodnoty ovládacích prvkov)

 Protected Sub submitEdit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles submitEdit.Click
Dim currentClass As String = submitEdit.CssClass

If currentClass = "hidden active" Then
"Get Rid of Controls
EditHeaderH1.Visible = False
submitEdit.Visible = False
submitEdit.CssClass = "hidden inactive"
currentStatus.value = "updated"
""""""""""""""""""""""""""""""""""""""""

"Find subject and Post Content""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Dim subjectText As String = Request.Form("editSubject")
Dim editorText As String = Request.Form("editEditor")
Dim editID As String = Request.Form("hiddenID")
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dim connStr As String = ConfigurationManager.ConnectionStrings("oakfratnewsConnectionString").ConnectionString
Dim nCon As New SqlConnection(connStr)
Dim addCon As New SqlConnection(connStr)
Dim addCom As New SqlCommand("UPDATE News SET Subject = @Subject, [Content] = @Content WHERE (ID = @ID)", addCon)
addCom.Parameters.AddWithValue("@Content", Server.HtmlDecode(editorText))
addCom.Parameters.AddWithValue("@Subject", subjectText)
addCom.Parameters.AddWithValue("@ID", editID)

Try
addCon.Open()
addCom.ExecuteNonQuery()
addCon.Close()
Catch ex As Exception



End Try


End If

End Sub

CODE: Kde sa pôvodne vytvorili polia

Public Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand

If e.CommandName = "editPost" Then
plcEditor.Controls.Clear()
GridView1.Visible = False
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim row As GridViewRow = GridView1.Rows(index)
Dim ID As String = GridView1.Rows(index).Cells(0).Text
""""""""""""""""""""""""""""""""""""""""CREATE Controls for Placeholder
Dim editEditor As New CuteEditor.Editor
Dim hiddenID As New HiddenField
Dim subjectTXT As New TextBox
Dim br As New Literal

hiddenID.Value = ID
hiddenID.ID = "hiddenID"
editEditor.ID = "editEditor"
editEditor.ClientIDMode = ClientIDMode.Static
subjectTXT.ID = "editSubject"
subjectTXT.ClientIDMode = ClientIDMode.Static
hiddenID.ClientIDMode = ClientIDMode.Static



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dim i As Integer = 100
Dim editButton As New Button
editButton.ID = String.Concat("editButton-", i)
editButton.CommandArgument = i.ToString


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dim sbjLabel As New Label


sbjLabel.Text = "Subject:   "

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
editEditor.AutoConfigure = CuteEditor.AutoConfigure.Simple
br.Text = "<br/><br/>"
plcEditor.Controls.Add(hiddenID)
plcEditor.Controls.Add(sbjLabel)
plcEditor.Controls.Add(subjectTXT)
subjectTXT.Width = "100"
subjectTXT.Height = "25"
subjectTXT.CssClass = "editInput"
plcEditor.Controls.Add(br)
plcEditor.Controls.Add(br)
plcEditor.Controls.Add(editEditor)
plcEditor.Controls.Add(br)
plcEditor.Controls.Add(br)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dim connStr As String = ConfigurationManager.ConnectionStrings("oakfratnewsConnectionString").ConnectionString
Dim nCon As New SqlConnection(connStr)
Dim addCon As New SqlConnection(connStr)
Dim addCom As New SqlCommand("SELECT * FROM [News] WHERE ([ID] = @ID)", addCon)
addCom.Parameters.AddWithValue("@ID", ID)


Dim results As SqlDataReader
addCon.Open()
results = addCom.ExecuteReader
While results.Read()
Dim editText As String = results.Item("Content")
Dim Subject As String = results.Item("Subject")
EditHeaderH1.InnerText = "Edit Post - " & Subject
editEditor.Text = editText
subjectTXT.Text = Subject
End While
results.Close()
addCon.Close()

""BUTTON Fade-IN Effect""
submitEdit.CssClass = "hidden active"
End If

odpovede:

0 pre odpoveď č. 1

Myslím, že musíte znovu vytvoriť svoje ovládacie prvkyOnInit, s rovnakými ID, aké mali pred spätným odoslaním. Ak znova vytvoríte svoje ovládacie prvky, údaje budú s nimi spojené a mali by ste k nim mať prístup v prípade tlačidla.