динамически добавить панель или элемент управления меткой в ​​сетку данных - PullRequest
0 голосов
/ 10 декабря 2010

Основываясь на тестировании значений существующей панели / метки внутри ItemTemplate (использует Column1), я хочу добавить другую панель / метку внутри того же ItemTemplate (отображает Column2).

Это внутри пользовательского элемента управления (.ascx), который я хочу контролировать добавлением одного конкретного <asp:Panel> в зависимости от того, имеет ли оно (или другая панель) конкретное значение или нет.Если нет, я не хочу, чтобы <asp:Panel> создавался (не должен генерировать <div> во время выполнения).Если да, я хочу сгенерировать <asp:Panel> внутри

<asp:DataGrid><Columns><ItemTemplate>

Пример. Предполагая, что мы получаем значение Column2, как и ожидалось, я хочу отобразить это значение, только если оно не равно «0», если нене хочу СОЗДАТЬ дополнительный тег внутри данного <ItemTemplate>.Я буду контролировать, когда он будет отображаться на основе другого тега.

If(Column2!='0')
 //Adding some condition for Column1 ... 
  Create the `<div>` tag i.e Add the `<asp:Panel>` 

Как мне также назвать этот код?

Это означает, что сгенерированный html будет иметь дополнительные теги div / span в некоторых случаях и не должен иметь теги, сгенерированные в других случаях.Можно ли это сделать, избегая Javascript.

1 Ответ

0 голосов
/ 10 декабря 2010

Можно использовать элемент управления <asp:PlaceHolder>, чтобы поместить элемент управления в определенное место в .ascx, например: <asp:PlaceHolder id="placeHere" runat="server />, и определить на основе другого элемента управления, следует ли добавить его.Пример:

If(Column1 condition)
 {
  Label addToGrid = new Label();
  addToGrid.Text = column1;
  addToGrid.Visible = true; 
  placeHere.Controls.Add(addToGrid);
}
...