C# 如何使用c在asp.net中查找表单元格#
我想使用td visibility属性在listview中隐藏itemtemplate的数据。单击按钮后,它应该再次显示itemtemplate中的数据。但是,我在后面的代码中找不到使用c#的td控件。有没有办法找到此控件或其他方法来处理此问题C# 如何使用c在asp.net中查找表单元格#,c#,asp.net,listview,itemtemplate,C#,Asp.net,Listview,Itemtemplate,我想使用td visibility属性在listview中隐藏itemtemplate的数据。单击按钮后,它应该再次显示itemtemplate中的数据。但是,我在后面的代码中找不到使用c#的td控件。有没有办法找到此控件或其他方法来处理此问题 <asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent"> <asp:Button ID="Button1" runat="se
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<asp:Button ID="Button1" runat="server" Text="Search" OnClick="ButtonClick" />
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View ID="View1" runat="server">
<asp:ListView ID="SectionListView" runat="server" InsertItemPosition="FirstItem" OnPagePropertiesChanged="SectionListView_PagePropertiesChanged">
<ItemTemplate>
<tr style="">
<td></td>
<td id="row1" style="visibility:hidden;" runat="server">
<asp:Label ID="SectionItemLabel" runat="server" Text='<%# Eval("SectionItem") %>' />
</td>
</tr>
</ItemTemplate>
你有几个问题。首先,当您试图在“MainContent”中查找“row1”时,if将无法找到它,因为“row1”实际上是“MainContent”的其他子级的子级。它不会递归地找到它们,除非 其次,由于ListView中的每个
ListViewItem
都包含“row1”,因此它们都有自己的唯一ID,例如SectionListView\u ctrl0\u row1
,SectionListView\u ctrl1\u row1
,等等。因此,您需要对每个ListViewItem
使用FindControl()
但是,由于您需要在每个ListViewItem
上执行此操作,并且因为每个ListViewItem
都包含“row1”,因此每一行将获得相同的属性(即所有可见或所有不可见)。以下是如何做到这一点:
protected void ButtonClick(object sender, EventArgs e)
{
foreach (ListViewItem lvi in SectionListView.Items)
{
if (lvi.ItemType == ListViewItemType.DataItem)
{
HtmlTableCell row1 = (HtmlTableCell)lvi.FindControl("row1");
row1.Style.Add("visibility", "hidden");
}
}
}
如果需要单独设置每个单元格的样式,则每个单元格的命名都需要不同。在这种情况下,通常会在ID的末尾附加某种数字或数据库ID 您正在单击的触发
按钮单击()的按钮在哪里?“MainControl”在哪里/是什么?@j.f.按钮点击在多视图外部,“MainControl”是内容占位符。更新的代码我需要保留这条线路吗?您肯定需要id=“row1”
和runat=“server”
。保持这种风格取决于你自己,也取决于你是否需要隐藏它来开始。谢谢一切都成功了!我只会隐藏页面加载上的所有内容。如果我在多视图中使用另一个视图,它找不到id。你知道吗?
protected void ButtonClick(object sender, EventArgs e)
{
foreach (ListViewItem lvi in SectionListView.Items)
{
if (lvi.ItemType == ListViewItemType.DataItem)
{
HtmlTableCell row1 = (HtmlTableCell)lvi.FindControl("row1");
row1.Style.Add("visibility", "hidden");
}
}
}