2011-07-21 88 views
0

我的程序中有中繼器,包括超鏈接。我無法訪問我的超鏈接控件。如何訪問中繼器中的超鏈接控件c#.net

<asp:HyperLink ID="HyperLink15" runat="server" NavigateUrl="abc.aspx"> 

設置啓用=假

所以我用

HyperLink a = (HyperLink)Repeater1.FindControl("HyperLink15"); 

超鏈接僅爲用戶A和B能......所以我使用的代碼:

if (a && b) 
{ 
    HyperLink link = (HyperLink)Repeater1.FindControl("HyperLink15"); 
    link.Enabled=true; 
    link.Navigateurl="efg.aspx"; 
} 

但我得到以下錯誤:

System.NullReferenceException: Object reference not set to an instance of an object.

+0

您可能會在嘗試撰寫問題時收到建議。如果您要查找鏈接,則有許多像您的問題。我不知道這可能是完全的幫助,但這裏是一個類似的帖子的鏈接:http://stackoverflow.com/questions/911240/find-a-control-inside-asprepeater。如果您向下滾動此頁面,可以找到一個稱爲相關問題的部分。看一看。 – deostroll

回答

2
HyperLink a = (HyperLink)Repeater1.Items[0].FindControl("HyperLink15"); 

以上使用,項目將包含索引。

或者

for (int count = 0; count < Repeater1.Items.Count; count++) 
     { 
      HyperLink a = (HyperLink)Repeater1.Items[count].FindControl("HyperLink15"); 
     } 
+0

謝謝saurabh ...它的工作... – Roshan

2

Repeater onItemDataBound Event首先檢查以下條件。

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
{ 
// find controls here 
} 
相關問題