【发布时间】:2021-02-24 15:10:30
【问题描述】:
我有一个 ListView,它显示每个项目的不同类型的目录。如果“pdflabel”、“pdftechlabel”、“pdfecolabel”等的值为 NULL,我想隐藏目录 div...
我进行了大量搜索,但我有限的知识使我无法连接所有点以使此功能达到预期。非常感谢任何帮助。
<div id="catalog">
<asp:ListView ID="ListViewCatalogs" runat="server" DataSourceID="SqlCatalogs" OnItemDataBound="ListViewCatalogs_ItemDataBound">
<EmptyDataTemplate>
</EmptyDataTemplate>
<ItemTemplate>
<div id="pdfcatalogs" runat="server">
<div id="brochure" class="pdfcat" runat="server" >
<asp:HyperLink ID="HyperLink2" CssClass="pdflinks" runat="server" Target="_blank" NavigateUrl='<%# Eval("catlinkpath", "Catalogs/{0}.pdf") %>' title='<%# Eval("pdfname") %>' ImageUrl='<%# Eval("pdficon") %>' />
<br />
<asp:Label ID="catnameLabel" CssClass="pdflinks" runat="server" Text='<%# Eval("pdflabel", "{0} Brochure") %>' />
</div><!--end brochure-->
<div id="techbrochure" class="pdfcat" runat="server">
<asp:HyperLink ID="HyperLink6" CssClass="pdflinks" runat="server" Target="_blank" NavigateUrl='<%# Eval("techlinkpath", "Catalogs/{0}.pdf") %>' title='<%# Eval("pdftechname") %>' ImageUrl='<%# Eval("pdftechicon") %>' />
<br />
<asp:Label ID="technameLabel" CssClass="pdflinks" runat="server" Text='<%# Eval("pdftechlabel") %>' />
</div><!--end techbrochure-->
<div id="ecobrochure" class="pdfcat" runat="server" >
<asp:HyperLink ID="HyperLink3" CssClass="pdflinks" runat="server" Target="_blank" NavigateUrl='<%# Eval("ecolinkpath", "Catalogs/{0}.pdf") %>' title='<%# Eval("pdfeconame") %>' ImageUrl='<%# Eval("pdfecoicon") %>' />
<br />
<asp:Label ID="econameLabel" CssClass="pdflinks" runat="server" Text='<%# Eval("pdfecolabel") %>' />
</div><!--end ecobrochure-->
<div id="sdsbrochure" class="pdfcat" runat="server" >
<asp:HyperLink ID="HyperLink5" CssClass="pdflinks" runat="server" Target="_blank" NavigateUrl='<%# Eval("sdslinkpath", "Catalogs/{0}.pdf") %>' title='<%# Eval("pdfeconame") %>' ImageUrl='<%# Eval("pdfsdsicon") %>' />
<br />
<asp:Label ID="sdsnameLabel" CssClass="pdflinks" runat="server" Text='<%# Eval("pdfsdslabel") %>' />
</div><!--end sdsbrochure-->
<div id="otherbrochure" class="pdfcat" runat="server" >
<asp:HyperLink ID="HyperLink7" CssClass="pdflinks" runat="server" Target="_blank" NavigateUrl='<%# Eval("otherlinkpath", "Catalogs/{0}.pdf") %>' title='<%# Eval("pdfothername") %>' ImageUrl='<%# Eval("pdfothericon") %>' />
<br />
<asp:Label ID="othernameLabel" CssClass="pdflinks" runat="server" Text='<%# Eval("pdfotherlabel") %>' />
</div><!--end otherbrochure-->
</div><!--end pdfcatalogs-->
</ItemTemplate>
<LayoutTemplate>
<div id="itemPlaceholderContainer" runat="server" border="0" style=""><span id="itemPlaceholder" runat="server"></span></div>
</LayoutTemplate>
</asp:ListView>
</div><!--end catalog-->
根据 Albert D. Kallal 的原始和更新答案,我添加了以下内容(更改了 ListView 而不是 GridView)。
private void AcceptData(string connectionString)
{
if (IsPostBack == false)
{
string strSQL;
strSQL = "SELECT pdflabel, pdftechlabel, pdfecolabel, pdfsdslabel, pdfotherlabel from tblcatalogs";
using (SqlCommand cmdSQL = new SqlCommand(strSQL, new SqlConnection(connectionString)))
{
cmdSQL.Connection.Open();
ListViewCatalogs.DataSource = cmdSQL.ExecuteReader();
ListViewCatalogs.DataBind();
}
}
}
protected void ListViewCatalogs_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.GetType() == typeof(ListViewDataItem))
{
Label lTech = (Label)e.Item.FindControl("technameLabel");
if (lTech.Text == "testing123")
{
HtmlGenericControl MyDiv = (HtmlGenericControl)e.Item.FindControl("techbrochure");
MyDiv.Visible = false;
}
}
}
但是,它仍然没有隐藏 div。我希望 div 实际上是“显示:无”,这样它就不会占用页面中的空间。我目前的问题是我仍然有空 div 的空间。
我找到了一些内联选项,但这对我也不起作用。
<div id="techbrochure" class="pdfcat" runat="server" visible='<%# Eval("pdftechname") == null ? true:false %>'>
<asp:HyperLink ID="HyperLink6" CssClass="pdflinks" runat="server" Target="_blank" NavigateUrl='<%# Eval("techlinkpath", "Catalogs/{0}.pdf") %>' title='<%# Eval("pdftechname") %>' ImageUrl='<%# Eval("pdftechicon") %>' />
<br />
<asp:Label ID="technameLabel" CssClass="pdflinks" runat="server" Text='<%# Eval("pdftechlabel") %>' />
</div><!--end techbrochure-->
【问题讨论】: