2009-12-22 49 views
0

我有一个自定义控件,可以在异步回传上为我做一些工作。通常情况下,我会直接从演示侧使用ASPX页面下面的代码调用控件:VB.NET以编程方式在标签之间添加代码

<mytag:CustomControl runat="server"> 
    html (or other text) goes here 
</mytag:CustomControl> 

然而,在我目前的应用程序,我需要dymanically创建代码隐藏控制,使用类似的代码以下几点:

Dim myControl As myClass.CustomControl = New myClass.CustomControl 
myControl.ID = "someID" 
myControl.?????? = "html (or other text) goes here" 
Me.Controls.Add(myControl) 

当动态添加控件到页面,如何添加信息,通常会是开始和结束标记之间,如果控制加在正常的,非动态的方式?

感谢

这里的实际控制:

Protected Overloads Overrides Sub Render(ByVal writer As HtmlTextWriter) 
    Dim scriptmanagerPage As ScriptManager = ScriptManager.GetCurrent(Page) 
    If scriptmanagerPage Is Nothing Then 
     'Do nothing 
    Else 
     'See if we are in a postback 
     If scriptmanagerPage.IsInAsyncPostBack Then 
      'We are in a postback; register the script 
      Dim stringbuilderWorking As New StringBuilder() 
      MyBase.Render(New HtmlTextWriter(New StringWriter(stringbuilderWorking))) 
      Dim stringScript As String = stringbuilderWorking.ToString() 
      ScriptManager.RegisterStartupScript(Me, GetType(ScanWorkXAJAX), UniqueID, stringScript, False) 
     Else 
      'Not in a postback 
      MyBase.Render(writer) 
     End If 'In an async postback 
    End If 'Scriptmanager present 

End Sub 

回答

0

能够使用文字控制来完成此操作。

代码上面加:

Dim myLiteral As LiteralControl = New LiteralControl 
myLiteral.ID = "myLiteral" 
myLiteral.Text = "html (or some other text) goes here" 
myControl.Controls.Add(myLiteral) 
3

你说的数据是什么意思?更多控制?

您可以使用

myControl.Controls.Add(childControlHere); 

编辑问题澄清后:

添加文字控制。即

myControl.Controls.Add(new LiteralControl("<b>hello world</b><script type='text/javascript'>alert('hi');</script>")); 
+0

我已经修改了问题更清楚一点。我不想将控件添加到我的控件中。我想添加通常出现在开始和结束标记之间的文本/ html /脚本数据。 – Brad 2009-12-22 19:00:09

0

这取决于您使用的自定义控件的属性。您可能必须绑定到模板才能显示事件,这实际上取决于您的具体控制。

+0

够公平的。自定义控件类现已发布。 – Brad 2009-12-22 19:24:43

相关问题