.NET WebForm隐藏后端服务器中的HTML TD列(更新面板,内容模板)



我有一个实例,它显示了一个listView。

listView在更新面板中,它需要通过检查会话来响应每个数据源绑定,并在ListView表中显示/隐藏一列。

我不能简单地添加

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

例外投掷说,更新面板无法更新时。

(但它适用于更新面板外部的控制)

我认为我可以通过JavaScript做到这一点,但是我只想确保在后端有更聪明的方法。

class='<%# HiddenClass %>'

并在on载过程中更改此参数(如果要显示列,请将hiddenclass更改为空字符串。

它适用于项目的列(在 itemTemplate 中),但对项目的标题列 layoutTemplate 不起作用(我认为这是因为数据源仅绑定数据源在 itemTemplate 中重新渲染了字段,而未包括 layoutTemplate

当前,如果对于listView的每个数据源绑定,我可以将其隐藏为false可见false。但是,当我需要隐藏更多的列时,看起来非常复杂(需要创建更多ID和ASP.NET,无法按班级设置字段)。

PlaceHolder包裹<td></td>并将其可见性属性从代码背后设置。

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

然后在

后面的代码中
if ((int)Session["v1"] == 1)
{
    PlaceHolder1.Visible = true;
}

最新更新