如何将撇号放在DataBound服务器标签内?

时间:2010-08-05 17:01:31

标签: c# asp.net

假设我在ListView中有一个TextBox控件,其中文本是DataBound,我想使用TrimStart。定义char参数的正确方法是什么?当我输入一个撇号时,我得到一个服务器标签不正确的错误...示例如下:

<asp:ListView>                                                          <!--here-->
  <asp:TextBox runat="server" Text='<%# Eval("Value").ToString().TrimStart('.',':') %>' />
</asp:ListView>

这是我正在做的事情的简化示例。在我的情况下,我必须在aspx页面中进行修剪。

4 个答案:

答案 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('\'', '.')