首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(ASP.NET)从回发中获取PlaceHolder控件的值

(ASP.NET)从回发中获取PlaceHolder控件的值
EN

Stack Overflow用户
提问于 2012-10-12 18:53:09
回答 1查看 1.1K关注 0票数 2

如何在回发后检索占位符中控件的值?

背景信息

我有两个动态创建的控件(它们在占位符中)。表单提交按钮也是创建的,dynamically.To澄清了我希望在按钮被按下后获得动态创建字段的值。

问题

在使用request.form时,我总是获得空值。我尝试过将ClientIDMode变成静态的,但是问题仍然存在。我还尝试简单地使用PLACEHOLDER1.FindControll方法,但这也返回null

代码(在这里我试图检索控件的值)

代码语言:javascript
复制
 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

代码:最初创建的字段

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2012-10-12 19:04:30

我认为您必须重新创建您的控件OnInit,其id与回发前相同。如果您重新创建控件,数据将绑定到它们,您应该能够在按钮事件中访问它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12865346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档