举个例子:
前台:
<div id="menu_con" runat="server">
<div id="qh_con0" runat="server" style="display: block">
<ul>
<li><a href="#" onclick="addTab('桌面主题','/NetBar/Client/Desktop/Default.aspx')"><span><s class="ico05"></s>桌面主题</span></a></li>
<li><a href="#" onclick="addTab('硬件检测','/NetBar/Hardware/Default.aspx')"><span><s class="ico06"></s>硬件检测</span></a></li><li class="menu_line2">
</li>
</ul>
</div>
</div>后台代码:menu_con.InnerHtml=@"<div id='menu_con' runat='server'>
<div id='qh_con0' runat='server' style='display: block'>
<ul>
<li><a href='#' onclick='addTab('代理列表','/Agent/Default.aspx')'><span><s class='ico01'></s>代理列表</span></a></li>
<li><a href='#' onclick='addTab('网吧列表','/NetBar/Pay/Reg/NonDisk/Default.aspx')'><span><s class='ico02'></s>网吧列表</span></a></li>
</ul>
</div></div>逻辑上就是后台覆盖掉前台的代码。。但是报错
我想请问。问题到底出在哪。。难道不是把所有的双引号改成单吗?
前台:
<div id="menu_con" runat="server">
<div id="qh_con0" runat="server" style="display: block">
<ul>
<li><a href="#" onclick="addTab('桌面主题','/NetBar/Client/Desktop/Default.aspx')"><span><s class="ico05"></s>桌面主题</span></a></li>
<li><a href="#" onclick="addTab('硬件检测','/NetBar/Hardware/Default.aspx')"><span><s class="ico06"></s>硬件检测</span></a></li><li class="menu_line2">
</li>
</ul>
</div>
</div>后台代码:menu_con.InnerHtml=@"<div id='menu_con' runat='server'>
<div id='qh_con0' runat='server' style='display: block'>
<ul>
<li><a href='#' onclick='addTab('代理列表','/Agent/Default.aspx')'><span><s class='ico01'></s>代理列表</span></a></li>
<li><a href='#' onclick='addTab('网吧列表','/NetBar/Pay/Reg/NonDisk/Default.aspx')'><span><s class='ico02'></s>网吧列表</span></a></li>
</ul>
</div></div>逻辑上就是后台覆盖掉前台的代码。。但是报错
我想请问。问题到底出在哪。。难道不是把所有的双引号改成单吗?
</div>去掉即可
<div id="qh_con0" runat="server" style="display: block">
<ul>
<li><a href="#" onclick="addTab('桌面主题','/NetBar/Client/Desktop/Default.aspx')"><span><s class="ico05"></s>桌面主题</span></a></li>
<li><a href="#" onclick="addTab('硬件检测','/NetBar/Hardware/Default.aspx')"><span><s class="ico06"></s>硬件检测</span></a></li>
<li class="menu_line2"></li>
</ul>
</div>
</div>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> protected void Button1_Click(object sender, EventArgs e)
{
menu_con.InnerHtml = @"<div id='qh_con0' runat='server' style='display: block'>
<ul>
<li><a href='#' onclick='addTab('代理列表','/Agent/Default.aspx')'><span><s class='ico01'></s>代理列表</span></a></li>
<li><a href='#' onclick='addTab('网吧列表','/NetBar/Pay/Reg/NonDisk/Default.aspx')'><span><s class='ico02'></s>网吧列表</span></a></li>
</ul>
</div>"; }
onclick='addTab('代理列表','/Agent/Default.aspx')'
建议改成
onclick=\"addTab('代理列表','/Agent/Default.aspx')\"
menu_con.InnerHtml=@"<div id='menu_con' runat='server'>
<div id='qh_con0' runat='server' style='display: block'>
<ul>
<li><a href='#' onclick=\"addTab('代理列表','/Agent/Default.aspx')\"><span><s class='ico01'></s>代理列表</span></a></li>
</ul>
</div></div>
注意看 onclick的地方,你之前是两个单引号,其实是相当于 onclick='addTab',没后文了,也没找到对应的函数,当然会报错了用string输出html标签这种形式,最好是看一下生成的源文件,里面的格式正不正确
menu_con.InnerHtml +="<ul><li><a href=\"#\" onclick=\"addTab('代理列表','/Agent/Default.aspx')\"><span><s class=\"ico01\"></s>代理列表</span></a></li>";
menu_con.InnerHtml +="<li><a href=\"#\" onclick=\"addTab('网吧列表','/NetBar/Pay/Reg/NonDisk/Default.aspx')\"><span><s class=\"ico02\"></s>网吧列表</span></a></li></ul></div>";
这下应该没问题了。这两种在我都没问题。
<li><a href='#' onclick=\"addTab('代理列表','/Agent/Default.aspx')\"><span><s class='ico01'></s>代理列表</span></a></li>
这种格式?不行。。直接 报错了
很感谢你积极回答。。但是你这种+=的方式。如果是一大段代码怎么办。。不能换行啊 我记得用个@就可以了啊
7楼方法不行。我一开也是那样做的。。问题估计出在字符串的长度上。
我还有种新方法
string str="<div id=\"qh_con0\" runat=\"server\" style=\"display: block\">"+
"<div id=\"qh_con0\" runat=\"server\" style=\"display: block\">";
带了个+号,解决换行的问题了
这个和我15楼的没什么差别。还有一个是用StringBuilder。也的一行一行的加。看来没啥好办法来。
只是看上去会显得很负重
对,你是在menu_con中再插入id为menu_con的div,这样肯定会出错的