2016-12-06 3 views
0

У меня есть экземпляр, он показывает listView..NET webform Скрыть столбец HTML td на сервере backend (панель обновления, шаблон содержимого)

listview находится в панели обновления, ему необходимо ответить на каждую привязку источника данных и показать/скрыть столбец таблицы listView, проверив сеанс.

Я не могу просто добавить

<% if((int)Session["v1"] ==1) { %> <td>Hi</td> <%}%> 

как бросить исключение, говоря, что панель обновления не может обновляться при <%%> существует.

(но это работает для управления вне панели обновления)

Я думаю, что я могу сделать это с помощью Javascript, но я просто хочу, чтобы убедиться, если есть более разумный способ сделать в интерфейсе.

class='<%# HiddenClass %>' 

и изменение этого параметра во время OnLoad (изменение HiddenClass на пустую строку, если столбец должен показать.

Он работает для столбца элементов (в ItemTemplate), но он не работает для заголовок столбца элемента LayoutTemplate (я думаю, это потому, что источник привязки данных только перерисовываются поля в ItemTemplate и не входит в LayoutTemplate.

В настоящее время я смог скрыть его, чтобы установить runat = "server" Visible to false, если для каждого связывания источника данных из списка. Но это выглядит очень сложно, когда мне нужно скрыть больше столбцов (нужно создать больше идентификаторов, а asp.net не может установить видимость полей по классам).

ответ

0

Оберните <td></td> с помощью PlaceHolder и установите его свойство Видимость из кода позади.

<asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible="false"> 
    <td>Hi</td> 
</asp:PlaceHolder> 

А потом в коде позади

if ((int)Session["v1"] == 1) 
{ 
    PlaceHolder1.Visible = true; 
} 
+0

привет, делая это так же, как я установить идентификатор и RUNAT = «сервер» на ... оба они будут бросать исключение с макетом шаблон не загружается (когда в источнике данных нет записей, ListView будет загружать свой пустой шаблон вместо LayoutTemplate, и, таким образом, независимо от того, какой владелец места или также будет генерировать исключение во время привязки данных – SKLTFZ

+0

, я просто обнаружил, что исключение можно избежать, это моя ошибка. Но проблема даже при использовании держателя места, мне все еще нужно создать двухместную держатель (s есть два html td, которые требуется скрывать, и их позитрон не склеивается. – SKLTFZ