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ď č. 1Myslí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.