如何隐藏工具栏中的按钮?

时间:2013-05-31 13:00:13

标签: c# asp.net button hide

我在aspx页面上遇到工具栏按钮问题。 我用于仅在协议页面中再渲染2个按钮的方法如下所示。 我只在协议页面上的工具栏上渲染2个按钮(活动,存档)。但是,当书籍存档时,我需要隐藏它们。我尝试通过检查if(Entity.IsArchived == 0)来做到这一点,但它在界面中给出了以下错误:

错误详情

对象引用未设置为对象的实例。

该方法的代码是:

protected override void OnPrepareButtons(SortedList<string, ImageButton> buttons)
{
        // Activate button
        ImageButton img = new ImageButton();
        img.ID = "btnActivate";
        img.AlternateText = "Activate";
        img.Command += new CommandEventHandler(btnActivate_Click);
        img.CommandName = "Activate";
        img.ImageUrl = "~/Content/images/png/apply.png";
        img.Width = Unit.Pixel(25);
        img.Height = Unit.Pixel(25);
        img.ToolTip = "Activate";
        buttons.Add("Activate", img);

        // Archive button
        img = new ImageButton();
        img.ID = "btnArchive";
        img.AlternateText = "Archive";
        img.Command += new CommandEventHandler(btnArchive_Click);
        img.CommandName = "Archive";
        img.ImageUrl = "~/Content/images/png/lock.png";
        img.Width = Unit.Pixel(25);
        img.Height = Unit.Pixel(25);
        img.ToolTip = "Archive";
        buttons.Add("Archive", img);

        base.OnPrepareButtons(buttons);

}

请知道如何处理这种情况?

1 个答案:

答案 0 :(得分:0)

您收到问题中提到的错误,因为当您添加行以检查是否Entity.IsArchived时,您将抛出一个空异常。您需要调试Entity的设置位置,以便在尝试使用它时查看它为空的原因。

解决为什么Entity为null后,您将能够成功检查IsArchived并根据需要隐藏图像。

这不是解决方案。如果你不确定调试:如果你添加了这个:

if(Entity == null)
    MessageBox.Show("Entity is null!!");

您会看到消息框:)