循环通过编程方式在文字控件中添加html

时间:2014-06-24 18:00:05

标签: html asp.net vb.net

我想知道是否有办法遍历我在代码隐藏literal中添加的HTML复选框。

我试过了:

Protected Sub SplitPDFPagesButton_Click(sender As Object, e As EventArgs) Handles SplitPDFPagesButton.Click
    Dim i As Integer = 0
    For Each c As Control In Page.Controls
        If TypeOf c Is HtmlInputCheckBox Then
            Dim cb As HtmlInputCheckBox = DirectCast(c, HtmlInputCheckBox)
            If cb.Checked = True Then
                i += 1
            End If
        End If
    Next
    MsgBox(i)
End Sub

但我认为我的问题是循环只找到文字作为容器(?)。

这样做的原因是因为我实际上并不知道在运行之前会生成多少个复选框。

这是我的代码到目前为止(正如您将在注释掉的部分中看到的那样,我尝试添加ASP.NET控件并使用HtmlInputCheckbox替换上面代码段中的Checkbox):

For Each fil As FileInfo In AllFiles
    '##########################################################
    'Add Image Controls
    'Dim hl As New HyperLink
    'hl.ID = pageCount
    'hl.CssClass = "preview"
    'hl.NavigateUrl = "xxx"
    'hl.ImageUrl = "xxx"
    'hl.Width = 20%
    'hl.Height = 20%
    'form1.Controls.Add(hl)
    'form1.Controls.Add(New LiteralControl("<br />"))
    ''Add Checkboxes
    'Dim chb As New CheckBox
    'chb.ID = pageCount
    'chb.Text = "Break Here"

    'Dim lb As New Label
    'lb.Text = "Page #" & pageCount
    'form1.Controls.Add(lb)
    'form1.Controls.Add(chb)
    'form1.Controls.Add(New LiteralControl("<br />"))
    'pageCount += 1
    '############################################################

    With str
        '.AppendLine("<img src=""xxx"" style=""width:50%; height:50%""/><br />")
        .AppendLine("<b>Page #: " & pageCount & "</b>")
        .AppendLine("<div class=""leavespace""></div>")
        .AppendLine("<a href=""xxx"" & """ class=""preview""><img src=""xxx & """ style=""width:20%; height:20%;""/></a><br />")
        '.AppendLine(Environment.NewLine)
        .AppendLine("-------------------<br />")
        .AppendLine("<input type=""checkbox"" value=" & pageCount & ">Break Here</input><br />")
        .AppendLine("-------------------<br />")
        .AppendLine("<div class=""leavespace""></div>")
        '.AppendLine(Environment.NewLine)
    End With
    pageCount += 1
Next

str.AppendLine("</div>")
Literal1.Text = str.ToString

1 个答案:

答案 0 :(得分:0)

一般来说,从后面的代码中获取常规HTML元素的唯一方法是添加属性runat =&#34; server&#34;,但我不相信这在asp.net文字中是可能的control,as literal用于表示页面上的静态元素和文本。我可能不正确。

看看这个: http://msdn.microsoft.com/en-us/library/system.web.ui.literalcontrol(v=vs.110).aspx