我在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);
}
请知道如何处理这种情况?
答案 0 :(得分:0)
您收到问题中提到的错误,因为当您添加行以检查是否Entity.IsArchived
时,您将抛出一个空异常。您需要调试Entity的设置位置,以便在尝试使用它时查看它为空的原因。
解决为什么Entity为null后,您将能够成功检查IsArchived
并根据需要隐藏图像。
这不是解决方案。如果你不确定调试:如果你添加了这个:
if(Entity == null)
MessageBox.Show("Entity is null!!");
您会看到消息框:)