如何做到在页面中根据数据库的某个字段的内容来显示或者隐藏表格中的部分内容??

时间:2021-11-26 14:56:11
我在ASPX页面中这样写,但是报错,代码如下:

 <%
                          string strReply = Eval("Reply").ToString();
                          if (strReply == "0")
                         {%>
                        <td width="54%" style="word-break:break-all;">标题:<%# DataBinder.Eval(Container.DataItem, "theme")%></td>
                        <%
} %>

我不知道这样的功能该怎样实现了,请高手指点!! 我新手,谢谢!!!!

5 个解决方案

#1


如果用的绑定控件可以直接设置某列的visible。
也可以通过数据源组table显示在页面上,这样对某列的现实与否就更容易控制了。

#2


在后台写吧。
 你是绑定的gridview还是datalist在事件中判断

#3


引用 2 楼 kongwei521 的回复:
在后台写吧。 
你是绑定的gridview还是datalist在事件中判断

datalist

#4


引入命名空间using System.Web.UI.HtmlControls;
 <td width="54%" style="word-break:break-all;"  id="test" runat="server">标题:<%# DataBinder.Eval(Container.DataItem, "theme")%></td>
然后在

 protected void 你的datalist名字_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer)
        {

            DataRowView drv = e.Item.DataItem as DataRowView;
            HtmlTable td = e.Item.FindControl("test") as HtmlTable;
            if (drv["Reply"] == "")
            {
                td.Visible = false;//隐藏
            }
            else { //不隐藏}
         }
    }

#5


引用 4 楼 kongwei521 的回复:
引入命名空间using System.Web.UI.HtmlControls;
<td width="54%" style="word-break:break-all;"  id="test" runat="server">标题: <%# DataBinder.Eval(Container.DataItem, "theme")%> </td>
然后在

protected void 你的datalist名字_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer)
{

DataRowView drv = e.It…



楼上的也可以

但我建议最好写后台方法吧,这样更快些,楼上这个数据多了
可能会点慢

#1


如果用的绑定控件可以直接设置某列的visible。
也可以通过数据源组table显示在页面上,这样对某列的现实与否就更容易控制了。

#2


在后台写吧。
 你是绑定的gridview还是datalist在事件中判断

#3


引用 2 楼 kongwei521 的回复:
在后台写吧。 
你是绑定的gridview还是datalist在事件中判断

datalist

#4


引入命名空间using System.Web.UI.HtmlControls;
 <td width="54%" style="word-break:break-all;"  id="test" runat="server">标题:<%# DataBinder.Eval(Container.DataItem, "theme")%></td>
然后在

 protected void 你的datalist名字_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer)
        {

            DataRowView drv = e.Item.DataItem as DataRowView;
            HtmlTable td = e.Item.FindControl("test") as HtmlTable;
            if (drv["Reply"] == "")
            {
                td.Visible = false;//隐藏
            }
            else { //不隐藏}
         }
    }

#5


引用 4 楼 kongwei521 的回复:
引入命名空间using System.Web.UI.HtmlControls;
<td width="54%" style="word-break:break-all;"  id="test" runat="server">标题: <%# DataBinder.Eval(Container.DataItem, "theme")%> </td>
然后在

protected void 你的datalist名字_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer)
{

DataRowView drv = e.It…



楼上的也可以

但我建议最好写后台方法吧,这样更快些,楼上这个数据多了
可能会点慢