前台:
<body>
<form id="form1" runat="server">
<div style="">
<div style="margin: auto; padding: auto; text-align: center;">
<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal">
<ItemTemplate >
<div style="float: left; margin-right: 20px;" id="div" >
<a href="Admin_add.aspx">
<asp:Label ID="goBack" runat="server" Text="返回"></asp:Label></a><br />
<br />
<a onclick="return confirm( '确定删除? ');" href="Admin_delPic.aspx?id=<%#Eval("Img_id") %>"
id="del">
<asp:Label ID="DelPic" runat="server" Text="删除"></asp:Label></a><br />
</div>
<img src="upload/<%#Eval("Image_Art")%>" alt="" /><br />
<asp:Label ID="Label1" runat="server" Text='<%#Eval("Image_Art") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
</div>
</div>
</form>
</body>
后台:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
id = Request.QueryString["id"].ToString(); //获得打开页面所传的值;
ListBind();
}
string users = Session["UserID"].ToString();
if (users != "admin")
{
this.DataList1.FindControl("DelPic").Visible = false;
}
}
我这样写不对吗、、??
刚学 asp.net 网上的有关这个的我也看了。。但是没解决!!求指教
------解决方案--------------------------------------------------------
VS2003 以上版本吧。 可能 你那个控件没有注册上。 你可以手动添加。 也可以把开发环境关了,重开
------解决方案--------------------------------------------------------
把那label删了, 重写个 换个ID。 重新注册一个。。 看好使不
------解决方案--------------------------------------------------------
看看报错信息,确实是没找的label报的错吗?
如果真的是,就试试楼上的方法,先删了,然后编译,然后加一个ID一样的
------解决方案--------------------------------------------------------
我很少这样写,但是我记忆中好像是在OnItemCommand 这个事件中来写。从理论上来说有多少条记录就会有多少个label 而他们的id应该会有变化,你直接用datalist来找,我估计是找不到。
而且这种情况下一般要判断一些是否为null,然后再使用。