大概意思是这样:前台DataList 中的Label控件"labIsPerfect"值为1时 ,则图片显示,为0,则图片隐藏(1)前台页面 .aspx<asp:DataList ID="dlPost" runat="server" Width="855px">
<ItemTemplate>
<asp:Image runat="server" ID="imgOK" ImageUrl="~/Images/jing.gif" />
<asp:Label ID="labIsPerfect" runat="server" Text='<%# Eval("IsPerfect") %>' ></asp:Label>
</ItemTemplate>
</asp:DataList>(2)后台的.cs中
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TopicBind();
}
} private void TopicBind()
{
//此处省略,绑定数据等
dlPost.DataSource = dt;
dlPost.DataBind(); foreach (DataListItem item in aa.Items)
{
Image imgOK = (Image)item.FindControl("imgOK");
Label labIsPerfect = (Label)item.FindControl("labIsPerfect");
if (Convert.ToInt32(labIsPerfect.Text) == 1)
{
imgOK.Visible = true;
}
else
{
imgOK.Visible = false;
}
}
}代码应该没有什么问题,
在不嵌套母板页的页面中,显示正常(但我的页面肯定是要放在母板页中的)但在嵌套了母板的页面中,image不正常,好像没有找到img,所以图片还是显示出来的
我后来把foreach()这段代码放在DataList 的事件 OnItemDataBound 中,图片能显示出来,除了Datalist最后一行,因为最后一行的 labIsPerfect值是0,但图片确还是能显示出来.
大概意思就是这样,不知道各位听懂没有,我想了好长事件还没搞定,
太影响我的转正和今后在公司的发展了,大家帮个忙吧.搞定了就立刻给分!
{
Image imgOK = (Image)item.FindControl("imgOK");
Label labIsPerfect = (Label)item.FindControl("labIsPerfect");
if (Convert.ToInt32(labIsPerfect.Text) == 1)
{
imgOK.Visible = true;
}
else
{
imgOK.Visible = false;
}}
ContentPlaceHolder cph = Master.FindControl("ContentPlaceHolder1") as ContentPlaceHolder;
再从 ContentPlaceHolder 控件里查找 DataList 控件
if (cph != null)
DataList dl = cph.FindControl("aa") as DataList;
我的问题解决了,虽然不知道原理,^_^
不过能搞定就OK了,结帐!