gpt4 book ai didi

c# - 在 ListView 中添加/删除列

转载 作者:行者123 更新时间:2023-12-02 15:20:50 25 4
gpt4 key购买 nike

现在我的代码中有一个 ListView。

<asp:ListView ID="ListView1" runat="server" OnPagePropertiesChanging="OnPagePropertiesChanging">
<LayoutTemplate>
<table class="global-table">
<tr runat="server">
<th>Header1</th>
<th>Header2</th>
<th>Header3</th>
<th>Header4</th>

</tr>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</table>

</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td><%# DataBinder.Eval(Container.DataItem, "Column1") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Column2") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Column3") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Column4") %></td>

</tr>
</ItemTemplate>
</asp:ListView>

我使用数据表填充此 ListView。 (无需手动添加)。

假设我设置了一个条件,例如:

bool isTrue = true;
if(isTrue)
{
//Add or remove some other column
}

因此,如果该条件为真,我如何在运行时添加或删除列(标题和内容)?

C# 框架:4.5.2

最佳答案

如果条件是由页面的属性给出的:

protected bool IsColumnVisible
{
get { return ... }
}

您可以在标记中使用它来显示/隐藏普通行的列:

<asp:ListView ID="ListView1" runat="server" 
OnPagePropertiesChanging="OnPagePropertiesChanging"
OnPreRender="ListView1_PreRender">
<LayoutTemplate>
<table class="global-table">
<tr runat="server">
<th>Header1</th>
<th>Header2</th>
<th>Header3</th>
<th id="thColumn4" runat="server">Header4</th>
</tr>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td><%# DataBinder.Eval(Container.DataItem, "Column1") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Column2") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Column3") %></td>
<td runat="server" visible='<%# IsColumnVisible %>'><%# DataBinder.Eval(Container.DataItem, "Column4") %></td>
</tr>
</ItemTemplate>
</asp:ListView>

由于数据绑定(bind)表达式在 LayoutTemplate 中不起作用,您可以在代码隐藏中显示/隐藏标题单元格:

protected void ListView1_PreRender(object sender, EventArgs e)
{
ListView1.FindControl("thColumn4").Visible = IsColumnVisible;
}

关于c# - 在 ListView 中添加/删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37657052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com