gpt4 book ai didi

asp.net - 停止asp :PlaceHolder from removing whitespaces

转载 作者:行者123 更新时间:2023-12-04 00:57:06 25 4
gpt4 key购买 nike

我遇到了 asp:PlaceHolder 的一些奇怪行为,它删除 asp:Literal 之间的空格s 在其中。

例如对于此代码:

<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<asp:Literal ID="Literal1" Text="aa" runat="server"></asp:Literal>
<asp:Literal ID="Literal2" Text="bb" runat="server"></asp:Literal>
</asp:PlaceHolder>
<asp:Literal ID="Literal3" Text="cc" runat="server"></asp:Literal>
<asp:Literal ID="Literal4" Text="dd" runat="server"></asp:Literal>

输出将为 aabb cc dd .

有没有办法阻止它删除空格(而不是通过在文字或 &nbsp; 之间添加 Text="aa " )?

最佳答案

最优雅的解决方案是简单地覆盖 PlaceHolder :

using System.Web.UI;
using System.Web.UI.WebControls;

namespace CustomControls
{
[ToolboxData("<{0}:Holder ID='Holder1' runat='server'></{0}:Holder>"), ControlBuilder(typeof(ControlBuilder))]
public sealed class Holder: PlaceHolder
{
}
}

这里的关键是使用 ControlBuilder而不是 PlaceHolderControlBuilder ,它只是覆盖它以始终返回 falseAllowWhiteSpaceLiterals .

您可以将其用作任何其他 Web 控件:
<%@ Register TagPrefix="asp" Namespace="CustomControls" %>
<asp:Holder runat="server">...</asp:Holder>

关于asp.net - 停止asp :PlaceHolder from removing whitespaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com