2010-08-05 1 views
0

Скажите, что у меня есть элемент управления TextBox внутри ListView, где текст - DataBound, и я хочу использовать TrimStart. Каков правильный способ определения параметров char? Когда я вхожу апостроф я получаю тег сервера не очень хорошо формируется ошибка ... Пример ниже:Как разместить апостроф внутри тега сервера DataBound?

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

Это упрощенный пример того, что я на самом деле. В моей ситуации я должен сделать эту обрезку на странице aspx.

+0

Не совсем ответ, но вы пытались использовать двойные кавычки вместо одиночных кавычек. Он не будет вызывать ошибку, но я не уверен, что подразумевается при использовании их (т. Е. Они меняют символ на строку, была ли она уже строкой и имеет значение ...) – Kendrick

+0

Он выглядит как вы пишете свое приложение в VB, но вы пытаетесь использовать синтаксис C# в вашем методе TrimStart. См. Мой ответ ниже. –

+0

Хм, почему это похоже, что я пишу в VB? Все это C#. –

ответ

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 является одним из наименее явно используемых событий и, на мой взгляд, помогает создать чистую разметку и сохранить весь ваш «код» в кодебе.

-1

Попробуйте избежать одиночной цитаты.

.TrimStart('\'', '.') 
+1

Я не пытаюсь удалить одну цитату. Я пытаюсь удалить. и a: –

+0

Мой плохой. Попробуйте HTMLEncode. Server.HtmlEncode (yourString) –

+0

Экранирование персонажа не будет работать. –

0

Помещенный гр позади него:

"."c 
+0

Когда я использовал ваш метод, я получил следующую ошибку: «CS1026:) ожидается« –

0

вы смотрели на примере MSDN? Похоже, что он делает то же самое, что вы пытаетесь

http://msdn.microsoft.com/en-us/library/system.string.trimstart.aspx

Copy/Paste это и дайте нам знать, если он работает.

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

Вот цитата из статьи MSDN. Обратите внимание, что вам нужно отправить массив, а не строка .. IE: Eval("Value") должен быть массив

The following example uses the TrimStart method to trim white space and comment characters from lines of source code. The StripComments method wraps a call to TrimStart and passes it a character array that contains a space and the comment character, which is an apostrophe (') in Visual Basic and a slash (/) in C#. The TrimStart method is also called to remove leading white space when evaluating whether a string is a comment.

+0

Хмм, я не вижу примера в этой ссылке. Когда я использовал ваш метод, я получил следующую ошибку: «CS1026:) ожидается» –

+0

Пример в ссылке msdn находится на вкладке «VB». Вам понадобится хвост 'c'. Также вам нужно убедиться, что 'Eval (" Value ")' является массивом. –

+0

TrimStart обрезает эти символы из каждой строки в массиве, который вы отправляете. –

Смежные вопросы