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

本文关键字:动态 问题 字符串 | 更新日期: 2023-09-27 18:11:45

我用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>");

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

你的代码是错误的。试试这个:

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>");

你可以用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类。

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

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"]);