2012-05-04 1 views
1

Я на самом деле пытаюсь поместить разрыв строки в строке в проекте asp.net, используя C#. Я помещаю эту строку в DataRow, которую добавляю к datable с именем «ds». done Я связываю этот datable ds с gridview. Это мой код:Разрыв строки в DataTable и GridView

  risque.projet = dt.Rows[i]["fk_projet"].ToString(); 
      risque.release = dt.Rows[i]["fk_release"].ToString(); 

      //Create the String for adding to the row 
      String test = "Project:"+risque.projet+"<br>"+ "Release: "+risque.release; 
      drow["Description"] = test; 
      Label1.Text = test; 


      //Add the row to the datatable. 
      ds.Rows.Add(drow); 

      //Link the datatable to the gridview 
      GridView1.DataSource = ds; 
      GridView1.DataBind(); 

Я хочу, чтобы этот вывод:

Проект: .......

выпуска: .......

но я всегда есть: Проект: .... Release ......

Я пытался много решений: -System.Environment.NewLine - \ г \ п - \ n

EDIT: Код моей gridView.I ничего в моем gridview не имеет, потому что все создано во время выполнения.

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
     EnableSortingAndPagingCallbacks="True" PageSize="5"> 
     <SelectedRowStyle Wrap="True" /> 
    </asp:GridView> 

Но ничего не работает. Тег br работает, но только когда я показываю свою строку в ярлыке.

У вас есть идея моей ошибки? У вас есть решение? Я потратил слишком много времени на это.

Спасибо,

Квентин

+0

Можете ли вы показать код aspx для Gridview? – David

ответ

3

Он должен работать поставить тег, но установить свойство HTMLEncode столбца ложь. По умолчанию все поля HtmlEncoded, что, конечно, останавливает html-теги от работы как html-теги.

Однако, если вы это сделаете, вы захотите htmlencode значения полей вручную в коде для предотвращения XSS.

"Project:" + Server.HtmlEncode(risque.projet)+ "<br />" + "Release: " + Server.HtmlEncode(risque.release) 

(я предпочитаю implemmentation в Anit-Cross-Site Scripting Библиотеки из HtmlEncode в Server.HtmlEncode, но это другая тема.)

+0

Привет, Дэвид, ваше решение хорошо, но ваша линия не работает. Я все еще ищу решение. Очевидно, мне нужно инициализировать ячейку моего gridview с помощью server.htmlEncode. – Quentin91360

+0

А я вижу. Вы позволяете автогенерировать столбцы времени исполнения. Я думаю, вам нужно будет установить AutoGenerateColumns = false и указать столбцы. Вы не можете указать HtmlEncode из кода.Единственной альтернативой, которую я имел, было использование TemplateField, что, опять же, означало бы указание столбцов. – David

+0

Спасибо, Дэвид, я просто нашел решение. Я собираюсь опубликовать его. – Quentin91360

0

Я думаю, что вам нужно: <br /> вместо <br>

+0

Уже пробовал.Не this.Tk u в любом случае – Quentin91360

1

Вместо конкатенации перерыв теги Вы может использовать символ возврата каретки, vbCrLf в этом случае.

Символы возврата каретки используются для функций печати и отображения.

Однако vbCrLf не существует в C#. Значение vbCrLf равно «\ r \ n». Поэтому попробуйте это ниже.

string vbCrLf = "\r\n"; 
String test = "Project:" + risque.projet + vbCrLf + "Release: " + risque.release; 
0

Преобразуйте столбец сетки в столбец шаблона, и метка будет делать магию.
будет работать, если привязывает данные к метке.

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

  • Нет связанных вопросов^_^