假设我在ListView中有一个TextBox控件,其中文本是DataBound,我想使用TrimStart。定义char参数的正确方法是什么?当我输入一个撇号时,我得到一个服务器标签不正确的错误...示例如下:
<asp:ListView> <!--here-->
<asp:TextBox runat="server" Text='<%# Eval("Value").ToString().TrimStart('.',':') %>' />
</asp:ListView>
这是我正在做的事情的简化示例。在我的情况下,我必须在aspx页面中进行修剪。
答案 0 :(得分:0)
将 c 放在后面:
"."c
答案 1 :(得分:0)
你看过MSDN的例子吗?看起来好像你正在尝试做同样的事情
http://msdn.microsoft.com/en-us/library/system.string.trimstart.aspx
复制/粘贴此内容并告知我们是否有效。
<asp:ListView>
<asp:TextBox runat="server" Text='<%# Eval("Value").ToString().TrimStart("."c,":"c) %>' />
</asp:ListView>
以下是MSDN文章的引用。请注意,您需要发送一个数组,而不是一个字符串.. IE:Eval("Value")
应该是一个数组
以下示例使用TrimStart方法修剪空白区域并从源代码行注释字符。 StripComments方法包含对TrimStart的调用,并向其传递一个字符数组,其中包含空格和注释字符,它是Visual Basic中的撇号(')和C#中的斜杠(/)。在评估字符串是否为注释时,还调用TrimStart方法来删除前导空格。
答案 2 :(得分:0)
将您的代码从您的网页中删除,并为OnDataBinding
实施TextBox
。我希望更多人能够这样做,因为它可以使标记更清晰,并将代码置于代码隐藏之中。
示例:
<asp:ListView>
<asp:TextBox ID="yourTextBox" runat="server" OnDataBinding="yourTextBox_DataBinding" />
</asp:ListView>
然后在您的代码中实现它,您不必处理这些问题,它将从标记中获取您的“代码”:
protected void yourTextBox_DataBinding(object sender, System.EventArgs e)
{
TextBox tb = (TextBox)(sender);
tb.Text = Eval("Value").ToString().TrimStart('.', ':');
}
如果使用ASP.NET WebForms,我个人尝试在可能的情况下不在我的标记中添加内联代码。 OnDataBinding
是最明确使用的事件之一,在我看来,它有助于创建干净的标记并将所有“代码”保留在代码隐藏中。
答案 3 :(得分:-1)
尝试转义单引号。
.TrimStart('\'', '.')