动态创建ImageButtons

时间:2012-08-01 10:48:14

标签: c# asp.net html

我想要做的是创建以下

 for(int i = 0; i < numberOfAnswers; i++){
        imgString = imgString + "<td><asp:ImageButton id='" + questionName + "' ImageURL='Styles/unClicked.png' runat='server' /></td>";
    }

但是当我使用HTMLTextWriter写出字符串时,它会把标签写出来,而不是将它们转换成html。

我是否必须用HTML编写它们并使用javascript来调用方法,或者有没有办法可以做到这一点而不会让它复杂化?

3 个答案:

答案 0 :(得分:2)

您应该实例化ImageButton个对象并将它们添加到页面的控件结构中。然后他们将呈现自己的标记,注册事件等。

for(int i = 0; i < numberOfAnswers; i++){
    var ib = new ImageButton();
    var td = new HtmlTableCell();

    // assign values, like ID, Image URL, event handlers, etc. here
    ib.ID = "button_" + i;
    ib.ImageUrl = "foo";
    ib.Click += ( sender, e ) => {
        // anonymous event handler
    };

    // "container" can be any control on the page, such as a table row
    container.Controls.Add( td );
    td.Controls.Add( ib );
}

答案 1 :(得分:1)

使用HTML.Encode()方法写出字符串

检查以下网址

http://www.dotnetperls.com/encode-html-string

答案 2 :(得分:1)

    for (var i = 0; i < 5; i++)
    {
        ImageButton imgBtn = new ImageButton();
        imgBtn.ID = "question" + i;
        imgBtn.ImageUrl = "Styles/unClicked.png";

        PlaceHolder1.Controls.Add(imgBtn);
    }

PlaceHolder1是runat服务器控件,你想添加你生成的按钮。