我有一个datalist,在它的标题模板中我有一个linkbutton。在我写的代码隐藏文件中,我总是这样写:
((LinkButton)(DataList1.FindControl("LinkButton1"))).Enabled = false;
但这给了我错误:
对象引用未设置为对象的实例。
如何访问此链接按钮?
答案 0 :(得分:2)
您应该在您使用的模板中使用FindControl()
(例如ItemTemplate
)
答案 1 :(得分:1)
您对FindControl
的调用没有找到任何内容 - 您需要确保在投射之前找到了某些内容并尝试使用它。
这种方法更安全:
LinkButton linkButton
= DataList1.FindControl("LinkButton1") as LinkButton;
if (linkButton != null)
linkButton.Enabled = false;
答案 2 :(得分:1)
如果LinkButton嵌入在像Panel或其他控件这样的容器中,则必须到达其内部。 FindControl不会通过集合的子控件递归。
例如,您可能必须使用您拥有的任何嵌套控件结构执行类似的操作:
FindControl("Panel1").FindControl("LinkButton1").Enabled ...
答案 3 :(得分:0)
尝试:
**LinkButton lnk = (LinkButton)e.Item.FindControl("LnkPager");**
评论:: LnkPager是My Datalist中的链接按钮