使用Response.Write()在ASP.NET中创建按钮

时间:2011-11-04 18:42:22

标签: asp.net

我正在尝试在ASP.Net中创建<asp:Button>。我现在有以下代码:

              <b>Tags:
               <%
                   List<string> tags = GetTags();
                   foreach(string tag in tags)
                   {
                       Response.Write(tag + " ");
                   }
               %>
            <br/>

但是,所有这一切都是将文本打印到网页上。我可以在某种程度上修改此语句以允许我用它创建按钮吗?或者我只是坚持文本?

1 个答案:

答案 0 :(得分:3)

您无法以这种方式创建服务器端控件。只需像通常使用任何html元素一样在标记中声明控件。例如:

<asp:button id="btnSubmitForm" runat="server" Text="Submit Form" />

如果你想要的是在你的标记上创建简单的标签;做这样的事情:

<asp:ContentPlaceHolder id="tagPlaceHolder" runat="Server">
</asp:ContentPlaceHolder>

在服务器端:

List<BrainStorm.Tags> tags = BrainStorm.PostRunner.GetTagsForPost((long)Double.Parse(hiddenField.Value));
foreach(BrainStorm.Tags tag in tags)
{
   Button b = new Button();
   b.Text=tag.Title;
   tagPlaceHolder.Controls.Add(b);
}

这会为ContentPlaceHolder

中的每个标记添加一个按钮

更新:

转发器里面......

protected void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) 
{
  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
  {
     ContentPlaceHolder placeHolder =  ((ContentPlaceHolder)e.Item.FindControl("tagPlaceHolder"));


  }
}