Repeater 隐藏空数据列

shenhui_163 2008-01-10 08:23:10
我遇到这样一个问题,望各位前辈能给于帮助.
我Repeater中读取一张表,.该表是这这样的有些字段有数值.而有些没有.
字段一 , 字段二 , 字段三 , 字段四 , 字段五 , 条件字段
aaa 字段一
aaa bbb 字段一 , 字段二
aaa bbb ccc 字段一 , 字段二 , 字段三
aaa bbb ccc ddd 字段一 , 字段二 , 字段三 , 字段四
aaa bbb ccc ddd eee 字段一 , 字段二 , 字段三 , 字段四 , 字段五
select * from 表 where 条件字段 = 读取的字符串的数值.现在是这样当我按条件读取之后, 没有数据的列(itemplate)我能够让其隐藏显示.但是表头和表尾,我还不知道如何隐藏,网大家指教,当然有数据的列表头和表尾就得显示
<asp:Reapter>
<Headertemplate>
<table>
<tr>
<td>
</td>
</tr>
</Headertemplate>
<itemplate>
<tr>
<td>
<asp:textbox ID="" Runat="server"/>
</td>
</tr>
</itemplate>
<footemplate>
<tr>
<td>
<asp:textbox ID="" Runat="server"/>
</td>
</tr>
</table>
<footemplate>
</asp:Reapter>
...全文
235 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenhui_163 2008-01-11
  • 打赏
  • 举报
回复
这个问题的表尾我已经解决了.表头不知道为什么不能按照同样的方法来解决.
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string S1 = ((TextBox)e.Item.FindControl("TextBox1")).Text.ToString();
string S2 = ((TextBox)e.Item.FindControl("TextBox2")).Text.ToString();
string S3 = ((TextBox)e.Item.FindControl("TextBox3")).Text.ToString();
string S4 = ((TextBox)e.Item.FindControl("TextBox4")).Text.ToString();
string S5 = ((TextBox)e.Item.FindControl("TextBox5")).Text.ToString();
string S6 = ((TextBox)e.Item.FindControl("TextBox6")).Text.ToString();
string S7 = ((TextBox)e.Item.FindControl("TextBox7")).Text.ToString();

//Response.Write(S2);
//Response.End();
Session["S11"] = S1;
//Response.Write(Session["S11"] + "<br>");
Session["S22"] = S2;
//Response.Write(Session["S22"] + "<br>");
Session["S33"] = S3;
//Response.Write(Session["S33"] + "<br>");
Session["S44"] = S4;
//Response.Write(Session["S44"] + "<br>");
Session["S55"] = S5;
//Response.Write(Session["S55"] + "<br>");
Session["S66"] = S6;
//Response.Write(Session["S66"] + "<br>");
Session["S77"] = S7;
//Response.Write(Session["S77"] + "<br>");

#region 中间控间的隐藏
//Response.Write(Session["S22"]);
if (S1.ToString().Length > 0)
{
((TextBox)e.Item.FindControl("TextBox1")).Visible = true;
}
else
{
((TextBox)e.Item.FindControl("TextBox1")).Visible = false;
}

if (S2.ToString().Length > 0)
{
((TextBox)e.Item.FindControl("TextBox2")).Visible = true;
}
else
{
((TextBox)e.Item.FindControl("TextBox2")).Visible = false;
}

if (S3.ToString().Length > 0)
{
((TextBox)e.Item.FindControl("TextBox3")).Visible = true;
}
else
{
((TextBox)e.Item.FindControl("TextBox3")).Visible = false;
}

if (S4.ToString().Length > 0)
{
((TextBox)e.Item.FindControl("TextBox4")).Visible = true;
}
else
{
((TextBox)e.Item.FindControl("TextBox4")).Visible = false;
}

if (S5.ToString().Length > 0)
{
((TextBox)e.Item.FindControl("TextBox5")).Visible = true;
}
else
{
((TextBox)e.Item.FindControl("TextBox5")).Visible = false;
}

if (S6.ToString().Length > 0)
{
((TextBox)e.Item.FindControl("TextBox6")).Visible = true;
}
else
{
((TextBox)e.Item.FindControl("TextBox6")).Visible = false;
}

if (S7.ToString().Length > 0)
{
((TextBox)e.Item.FindControl("TextBox7")).Visible = true;
}
else
{
((TextBox)e.Item.FindControl("TextBox7")).Visible = false;
}
#endregion
}
qdzhaokun 2008-01-10
  • 打赏
  • 举报
回复
<itemplate>
<% if (!isempty( (int)((DataRowView) Container.DataItem)["R_RoleID"] )){ %>

<tr>
<td>
<asp:textbox ID="" Runat="server"/>

</td>
</tr>
<% }%>
</itemplate>

前台写一个处理的函数 isempty 如果空返回true
应该有更好的办法,一起等

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧