我在DataList控件包含了3个imageButton控件,代码如下:
<asp:DataList id="FuncList" runat="server" DataKeyField="MjID" OnItemCommand="FuncList_ItemCommand">
<ItemTemplate>
<asp:ImageButton id="ImageButton1" runat="server" ImageUrl="../images/edit.gif" CommandName="edit"></asp:ImageButton>&nbsp;
<asp:ImageButton id="ImageButton2" runat="server" ImageUrl="../images/delete.gif" CommandName="del"></asp:ImageButton>&nbsp;

</ItemTemplate>
</asp:DataList>
我在Page_Load中加入以下代码:
private void Page_Load(object sender, System.EventArgs e)
{
    FuncList.FindControl("edit").Visible = false;
}
我想把edit按钮隐藏!
但是系统提示:“未将对象引用设置到对象的实例”的错误信息!请问是什么原因?该怎么做?

解决方案 »

  1.   

    写在DataGrid的ItemDataBound事件里
    ImageButton ImageButton1=(ImageButton)e.Items.FindControl("ImageButton1");
    ImageButton1.Visible = false;
      

  2.   

    楼上的说得对。写在DataList的ItemDataBound事件中
      

  3.   

    if((e.Item.ItemType == ListItemType.Item) || 
    (e.Item.ItemType == ListItemType.AlternatingItem))
    {
       ((ImageButton)e.Items.FindControl("ImageButton1")).Visible = false;}