Вычеркивание текста литералов

#c# #asp.net

#c# #asp.net

Вопрос:

У меня есть литерал, который показывает число, скажем 4.00 . Чего бы я хотел, так это отформатировать его с помощью вычеркивания (например, когда вы что-то царапаете, потому что это неправильно). Я делаю это, потому что мне нужно обновить его до новой цены, но сохранить видимой старую цену:

 old 16.00 (strike-through)  new 14.95 (normal). 
  

Это то, что у меня есть, но я не уверен, как это реализовать. Это возможно?

  string myPrice = "16.00";
 litMyPrice.Text = myPrice.ToString("c") 
  

Ответ №1:

Вместо этого вам нужно будет использовать a asp:Label , который генерирует <span> тег, чтобы иметь возможность его стилизовать:

 litMyPrice.Attributes.Add("style", "text-decoration: line-through;");
  

или

Создайте класс CSS и измените CssClass свойство, я рекомендую этот подход. Смешивание разметки и CSS или даже .Сгенерированные в СЕТИ стили могут причинить вам боль в будущем.

 .strikethrough {text-decoration: line-through;}

litMyPrice.CssClass = "strikethrough";
  

Ответ №2:

 litMyPrice.Text = String.Format("<del>{0}</del>", myPrice.ToString("c"));
  

Ответ №3:

 <del>16.00</del>
  

15.00 теперь 16.00

Ответ №4:

Присвойте литералу CssClass и оформите его с помощью text-decoration:line-through .

Комментарии:

1. Литерал не поддерживает CssClass, это только текст, он не отображает контейнер.

Ответ №5:

Я предполагаю, что litMyPrice — это элемент управления в вашем пользовательском интерфейсе. Если это метка asp, вы должны иметь возможность установить

 <asp:Label ... Font-Strikeout="true" />