C# 向tablecell添加第二个控件时在表中添加了不需要的换行符

C# 向tablecell添加第二个控件时在表中添加了不需要的换行符,c#,asp.net,html-table,C#,Asp.net,Html Table,我正在asp.net中创建一个表 Table tbl = new Table(); foreach (var item in items) { var tr = new TableRow(); var lmc = new Menu(); lmc.Width = Unit.Pixel(120); lmc.MenuItemClick +=lmc_MenuItemClick; lmc.Items.Add(new MenuItem(item.name));

我正在asp.net中创建一个表

Table tbl = new Table();
foreach (var item in items)
{
    var tr = new TableRow();

    var lmc = new Menu();
    lmc.Width = Unit.Pixel(120);
    lmc.MenuItemClick +=lmc_MenuItemClick;
    lmc.Items.Add(new MenuItem(item.name));
    var tc = new TableCell();
    tc.Controls.Add(lmc);
    tc.Controls.Add(new Label() { Text = item.description });
    tr.Cells.Add(tc);
    tbl.Rows.Add(tr);                    

}

placeholder.Controls.Add(tbl);
对于一行,我的HTML如下所示:

<tr>
    <td><a href="#_SkipLink"><img alt="Skip Navigation Links" src="[a source]" width="0" height="0" style="border-width:0px;" /></a><div class="menu" id="">
        <ul class="level1">
            <li><a class="level1" href="#" onclick="__doPostBack([stuff])">Name</a></li>
        </ul>
    </div><a id="_SkipLink"></a><span>Description</span></td><td></td>
</tr>
但我得到的是

[name]
[description]
[name]
[description]
.....
....

为什么每次添加的
说明
都会换行?

UL标签会创建换行符。这是所有HTML块元素的默认行为:


正如已经提出的:不要使用Menücontrol。改为使用简单的超链接控件或超链接按钮,这将创建一个简单的HTML标记

这里的代码非常奇怪-您没有对创建的表单元格执行任何操作,并且添加表行时没有在其中添加任何内容。您似乎还有一个恶意的右括号。我怀疑这不是您的实际代码…您能显示生成的HTML吗?因为这取决于菜单控件呈现的HTML。无论如何,我会使用超链接而不是菜单…抱歉,这不是在浏览器中呈现的结果HTML。请在浏览器中单击鼠标右键并显示页面的HTML源代码:),但该代码对
tc
仍然没有任何作用。(看看你在用
tr
做什么:你创建它,并将它添加到表中,但不向其中添加任何内容。)@Jürgen更新。但是我不能真正改变html中的任何东西,它是生成html的代码隐藏。我看到菜单后面没有br,所以我猜menucontrols会在其后面添加br隐式?
[name]
[description]
[name]
[description]
.....
....