我有下面的串列視圖,我怎樣才能通過后面的代碼隱藏列呢?
<asp: ListView ID="AuditLogListView" runat="server" OnItemCreated="AuditLogListView_ItemCreated">
<LayoutTemplate>
<table class="table table-striped table-bordered small">
<tr class="table-secary">
<th id="BlockHeader" runat="server" style="white-space: normal;" >
<asp:Literal ID="BlockHeaderLiteral" runat="server" Text="<%$ Resources:AppResources, AuditInformationBlockHeader%>" />
</th>
</tr>
<asp:PlaceHolder runat="server" ID="ItemPlaceholder"> </asp:PlaceHolder>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td id="BlockStatus" runat="server">
<%# Eval("BlockStatus")%>/span>
</td>
</tr>
</ItemTemplate>
在用串列視圖系結資料后,我試著用下面的代碼,但這個標題文本只隱藏了,但列仍然可以看到
。if (groupOrBlockValue == 'W'/span>)
{
AuditLogListView.FindControl("BlockHeader").Visible = false。
AuditLogListView.FindControl("BlockHeaderLiteral").Visible = false;
/AuditLogListView.FindControl("BlockStatus").Visible = false;.
uj5u.com熱心網友回復:
錯過了串列視圖的一部分?
用這個:
<asp:ListView ID="LstMarks" runat=" server" DataKeyNames="ID" >
<ItemTemplate>
<tr style="">
<td><asp:Textbox ID="Course" runat="server" Text='<%# Eval("Course") %> ' /> </td>
<td><asp: Textbox ID="Mark" runat="server" Text='<%# Eval("Mark") %>' Width="30px"/> </td>
<td>
<asp: CheckBox ID="DoneLabs" runat="server" Checked = '<%# Eval("DoneLabs") %> ' Width="30px"/>
</td>
</tr>
</ItemTemplate>
<LayoutTemplate>
<table id="itemPlaceholderContainer" runat="server" border="0" class="table">
<tr runat="server" style="" >
<th runat="server" > Course</th>
<th runat="server">Mark</th>
<th id="LabW" runat="server" >完成的實驗室作業</th>
</tr>
<tr id="itemPlaceholder" runat="server">
</tr>
</table>
</LayoutTemplate>
</asp:ListView>
<br />
<br />
<asp:Button ID="cmdHide" runat="server" Text="Hide Lab check box" OnClick="cmdHide_Click" />
所以請注意,在布局中,我們添加了一個 "id"=LabW--它可以讓你隱藏頁眉。
因此,一個簡單的按鈕將切換(隱藏/顯示)lvColum,那么這個作業:
protected void Page_Load(object sender, EventArgs e)。
{
if (!IsPostBack)
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT * from StudentCourses",
new SqlConnection(Properties.Settings.Default.TEST4))
{
cmdSQL.Connection.Open()。
LstMarks.DataSource = cmdSQL.ExecuteReader()。
LstMarks.DataBind()。
}
}
}
protected void cmdHide_Click(>object sender, EventArgs e)。
{
控制 ctrHeader = LstMarks.FindControl("LabW")。
ctrHeader.Visible = !ctrHeader.Visible;
foreach (ListViewItem lvRow in LstMarks.Items)
{
CheckBox ckBox = (CheckBox)lvRow.FindControl("DoneLabs") 。
ckBox.Visible = !ckBox.Visible;
}
因此,我們得到這樣的結果:
然后點擊該按鈕,我們得到如下結果:
而且這兩個值都發生了變化--它們持續存在--即使你再次點擊(切換并顯示隱藏列)。
Edit: =====================================================
所以,說這個標記:
<asp:ListView ID="AuditLogListView" runat="server"
OnItemCreated="AuditLogListView_ItemCreated">
<LayoutTemplate>
<table class="table table-striped table-bordered small">
<tr class="table-secary">。
<th id="BlockHeader" runat="server" style="white-space: normal;" >
<asp:Literal ID="BlockHeaderLiteral" runat="server" Text="Hotel Name" />
</th>
</tr>
<asp:PlaceHolder runat="server" ID="ItemPlaceholder"> </asp:PlaceHolder>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td id="BlockStatus" runat="server">
<%# Eval("BlockStatus")%>/span>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp: Button ID="Button1"/span> runat="server"/span> Text="Button"/span> OnClick="Button1_Click"/span> />
而隱藏在按鈕后面的代碼是這樣的:
protected void Button1_Click(object sender, EventArgs e)。
{
控制 ctrHeader = AuditLogListView.FindControl("BlockHeaderLiteral")。
ctrHeader.Visible = !ctrHeader.Visible;
foreach (ListViewItem lvRow in AuditLogListView.Items)
{
Control BlockStat = (Control)lvRow.FindControl("BlockStatus")。
BlockStat.Visible = !BlockStat.Visible;
}
uj5u.com熱心網友回復:
你在哪個事件中寫了這段代碼?
在OnDataBound事件中需要這個代碼。而在你的代碼中,這個事件不見了。
<asp:ListView ID="AuditLogListView" runat="server" OnItemCreated="AuditLogListView_ItemCreated" OnDataBound="AuditLogListView_DataBound" > <asp:Literal ID="BlockHeaderLiteral" runat="server" Text="<%$ Resources:AppResources, AuditInformationBlockHeader %>" /><asp:PlaceHolder runat="server" ID="ItemPlaceholder">< /asp:PlaceHolder>
C#代碼:
protected void AuditLogListView_DataBound(object sender, EventArgs e) {AuditLogListView.FindControl("BlockHeaderLiteral").Visible = false; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/306974.html
標籤:
