2017-07-13 4 views
0

Aus irgendeinem Grund in der C# -Code hinter asp.net, kann ich nicht die Tabelle von seiner ID aufrufen, um es zurück Farbe Eigenschaft. Ich habe versucht, und nichts scheintnicht auf Tabelle zurück Farbe Eigenschaft zugreifen

Hier zu arbeiten ist mein asp.net Tisch tag:

<table id="ptbl" runat="server" cellpadding="2" width="640px" border="1"> 

hier ist etwas Ähnliches, was ich, was hinter der C# -Code zu tun, aber es erkennt nicht die id

ptbl.Attributes.Add("style", "background-color:red")"); 

Irgendwelche Ideen/Vorschläge?

Update: Hier ist der Code. Es ist eine Layout-Vorlage darin, so dass sie die Tabellen-ID nicht sehen kann, aber wenn ich das herausnehme, sieht sie es. Was kann ich tun. Ich brauche das listview, um die Daten zu erhalten

<asp:ListView ID="ListView1" runat="server" Style="color: white; font-weight: bold"> 
     <LayoutTemplate> 
      <table id="ptbl" runat="server" cellpadding="2" width="640px" border="1" style="color: black; font-weight: bold"> 
       <tr runat="server"> 
        <th runat="server">Ps</th> 
        <th runat="server">P</th> 
        <th runat="server">T</th> 
       </tr> 
       <tr runat="server" id="itemPlaceholder" /> 
      </table> 
      <asp:DataPager runat="server" ID="ContactsDataPager" PageSize="90"> 
       <Fields> 
        <asp:NextPreviousPagerField ShowFirstPageButton="true" ShowLastPageButton="true" 
         FirstPageText="|&lt;&lt; " LastPageText=" &gt;&gt;|" 
         NextPageText=" &gt; " PreviousPageText=" &lt; " /> 
       </Fields> 
      </asp:DataPager> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <tr runat="server"> 
       <td> 
        <asp:Label ID="Label1" runat="server"><%# Eval("Ps") %></asp:Label></td> 
       <td> 
        <asp:Label ID="Label2" runat="server"><%# Eval("P") %></asp:Label></td> 
       <td> 
        <asp:Label ID="Label3" runat="server"><%# Eval("T") %></asp:Label></td> 
      </tr> 
     </ItemTemplate> 
    </asp:ListView> 

Wieder verursacht die Layoutvorlage das Problem. Wie kann ich die Listenansicht und die Tabelle mit der Layoutvorlage verwenden? Ich weiß, das hat sich jetzt ein wenig verändert, aber jede Hilfe wäre willkommen.

+0

pTB1 in Code-Behind nicht erkennbar ist? –

+0

@AkashKC - Korrekt Ptbl (L nicht eine 1) wird nicht im Code hinter – user3240928

+0

erkannt Es ist in meinem Codebehind erkannt. aber Sie haben einen Compilerfehler beim Hinzufügen eines Attributs. es sollte wie 'ptbl.Attributes.Add (" style "," background-color: red ") sein;' –

Antwort

0

Sie können nicht auf die Ptbl-Tabelle zugreifen, bis DataBind() in ListView1 aufgerufen wurde. Nachdem es und dort genannt wurde, sind Daten im Datensatz, dann können Sie verweisen die die PTBL Tabelle wie folgt aus:

protected void Page_Load(object sender, EventArgs e) 
    { 
     var tbl = new DataTable(); 
     tbl.Columns.Add("Ps", typeof(Int32)); 
     tbl.Columns.Add("P", typeof(string)); 
     tbl.Columns.Add("T", typeof(string)); 

     var r = tbl.NewRow(); 
     r[0] = 99; 
     r[1] = "Hey"; 
     r[2] = "USA"; 
     tbl.Rows.Add(r); 
     ListView1.DataSource = tbl; 
     ListView1.DataBind(); 

     var ptbl = (HtmlTable)ListView1.FindControl("ptbl"); 
     ptbl.Style.Add("background-color", "red"); 
    } 
Verwandte Themen