2012-09-02 37 views
1

一些控制我是一種asp.net初學者,我試圖只是設置可見屬性動態,但我不能訪問「TestLinkBox」也沒有「TestLink」ID在代碼背後。我試圖重建解決方案,刪除designer.cs文件,讓它被重新創建,並嘗試了一些解決方案,我發現在stackOverflow,你可以在後面的代碼中看到,但我總是得到「對象引用未設置爲實例一個東西。」錯誤。我究竟做錯了什麼?智能感知沒有顯示在代碼背後

部分ASP.NET代碼的

<%@ Page Title="" Language="C#" MasterPageFile="~/Public/Main.Master" 
AutoEventWireup="true" CodeBehind="SpecifikacijaDetails.aspx.cs" Inherits="web.Public.SpecifikacijaDetails" 
%> 
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content> 
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
     <mc:VijestiTraka ID="vijestitraka" runat="server"></mc:VijestiTraka> 
     <div class="middle_content_box"> 
      <asp:ListView ID="ListView1" runat="server" DataKeyNames="SpecifikacijaID" 
      DataSourceID="SqlDataSource1"> 
       <AlternatingItemTemplate> 
        <div class="details_title_box"> 
         <p class="title"><strong><%# Eval("Brand") %></strong> 
          <%# Eval("Model") %> 
         </p> 
        </div> 
        <div class="left_column"> 
         <div class="pregled_modela_slika margb30"> 
          <img src='<%# Eval("SlikaMobitela") %>' /> 
         </div> 
         <div id="TestLinkBox" class="testLink" runat="server" visible="false"> 
          <asp:HyperLink runat="server" ID="TestLink" NavigateUrl='<%#"~/Public/TestSpecifikacije.aspx?SpecifikacijaID=" + Eval("SpecifikacijaID")%>' 
          Text="Pogledajte kompletan test"></asp:HyperLink> 
         </div> 

後面的代碼

using (MobBL temp = new MobBL()) 
{ 
    if (temp.ProvjeriImalTest(Int32.Parse(Request.QueryString["SpecifikacijaID"])) > 0) 
    { 

     //ListView1.FindControl("link_za_test").Visible = true; 

     //HtmlControl htmlDivControl = (HtmlControl)Page.FindControl("link_za_tet"); 
     //htmlDivControl.Visible = true; 
    } 
} 

回答

1

您試圖在代碼中訪問控件的後面,是一個項目模板中。因爲這個原因,你不能通過intellisense訪問它們,因爲它們實際上並不在表單上 - 當父控件(ListView1)被綁定時,它們將被添加。

訂閱listview控件的item databound event。在那裏,你可以訪問列表視圖中每個項目的子控件。像這樣的東西會讓你控制:

e.Item.FindControl("TestLinkBox"); 
+0

非常感謝你,先生。有效! –