动态表使用字符串生成器问题

时间:2011-10-19 10:58:40

标签: c# asp.net

我用stringbuilder创建了一个动态表。我得到了一个带有根元素的表。要求是在单击此根元素时,应填充子表。那么如何为这个根表编写click事件呢? 我试过以下代码。 onclick事件未触发。

StringBuilder Builder = new StringBuilder();

Builder.Append(@"<table border=1;").Append("id=Tableid;").Append("onclick=GetchildDiv()>").Append("<tr><td>").Append(Mainrow["Title"]).Append("</td></tr></table>");

3 个答案:

答案 0 :(得分:5)

你的代码错了。试试这个:

Builder
    .Append(@"<table border=1 ") // remove semi-colon and add space
    .Append("id=Tableid ") // remove semi-colon and add space
    .Append("onclick=\"GetchildDiv();\">") // wrap the function-name by "
    .Append("<tr><td>")
    .Append(Mainrow["Title"])
    .Append("</td></tr></table>");

答案 1 :(得分:3)

你可以使用StringBuilder来做到这一点。

System.Text.StringBuilder Builder = new System.Text.StringBuilder();
Builder.Append("<table border=\"1\" ").
    Append("id=\"Tableid\" ").
    Append("onclick=\"GetchildDiv()\">").
    Append("<tr><td>").
    Append(Mainrow["Title"]).
    Append("</td></tr></table>");

如果你做MVC我建议使用TagBuilder类。

答案 2 :(得分:2)

属性之间需要空格,不是分号(;)。你应该引用属性值:

Builder.Append(@"<table border=""1"" ")
       .Append("id=\"Tableid\" ")
       .Append("\"onclick=GetchildDiv();\">")
       .Append("<tr><td>")
       .Append(Mainrow["Title"])
       .Append("</td></tr></table>");

虽然您可以使用AppendFormat,但为了便于阅读:

Builder.Append(@"<table border=""1"" id=""Tableid"" onclick=""GetchildDiv();"">")
Builder.AppendFormat(@"<tr><td>{0}</td></tr></table>", Mainrow["Title"]);