Ms access 访问中继器控件并更改其属性

Ms access 访问中继器控件并更改其属性,ms-access,controls,repeater,Ms Access,Controls,Repeater,我试图禁用/隐藏位于中继器控件内的lnkDelete按钮。我使用了此方法,但收到一条错误消息: 对象引用未设置为对象的实例。我不确定是什么问题。我能够使用intellesense显示控件的可见属性,这证明我在中继器中确实有控件的作用域,任何人都可以提供帮助。 谢谢 Bob white您需要添加一条if语句来检查itemtype是否为item或Alternative item,而不是header item或footer item: If (e.Item.ItemType == ListItemTy

我试图禁用/隐藏位于中继器控件内的lnkDelete按钮。我使用了此方法,但收到一条错误消息: 对象引用未设置为对象的实例。我不确定是什么问题。我能够使用intellesense显示控件的可见属性,这证明我在中继器中确实有控件的作用域,任何人都可以提供帮助。 谢谢


Bob white

您需要添加一条if语句来检查itemtype是否为item或Alternative item,而不是header item或footer item:

If (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){
 var lnkDel = e.Item.FindControl("lnkDelete").Visible = false;

   }

Bob即使FindControl不返回控件,您似乎也在尝试设置Visible属性

你可能应该做一些类似的事情

var lnkDel = e.Item.FindControl("lnkDelete");
if (lnkDel != null)
  lnkDel.Visible = false;

你说的中继器控制是什么意思?另外,这不是VBA代码。您希望我们了解您的想法,了解您在什么环境中编码吗?基于标记,人们可能会认为您是在Access VBA中编程,但显然不是这样。如果你想得到回报,请给我们一些帮助。
var lnkDel = e.Item.FindControl("lnkDelete");
if (lnkDel != null)
  lnkDel.Visible = false;