2016-08-04 4 views
0

Neu, um das ListView-Steuerelement zu verwenden, und ich versuche, den Wert einiger Textfelder in der Layoutvorlage abzurufen. Hier ist meine aspx-Code:.NET ListView Fußzeilensteuerelemente

<asp:ListView 
ID="lvFundingSummary" 
OnItemCommand="lvFundingSummary_onItemCommand" 
OnItemDataBound="lvFundingSummary_ItemDataBound" 
runat="server" >      
    <EmptyDataTemplate> 
     <table 
      id="Table1" 
      runat="server" 
      style="background-color: #FFFFFF; 
      border-collapse: collapse; 
      border-color: #999999; 
      border-style:none; 
      border-width:1px;"> 
      <tr> 
       <td>No data was returned.</td> 
      </tr> 
     </table> 
    </EmptyDataTemplate> 

    <ItemTemplate> 
     <tr> 
      <td style="width: 50%; text-align:left; padding-top: 5px; padding-bottom:5px;"> 
       <asp:Label ID="lblResearchArea" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PlName")%>' />&nbsp; 
      </td> 
      <td style="width: 30%; text-align:right; padding-top: 5px; padding-bottom:5px;"> 
       <asp:Label ID="lblFundingGross" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "FundingGross", "{0:c}")%>' />&nbsp; 
      </td> 
      <td style="width: 20%; text-align:right; padding-top: 5px; padding-bottom:5px;"> 
       <asp:Label ID="lblGross" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "AllGross", "{0:c}")%>' />&nbsp; 
      </td> 
     </tr> 
    </ItemTemplate> 

    <LayoutTemplate> 
     <table id="Table2" style="width: 90%" runat="server"> 
      <tr id="Tr1" runat="server"> 
       <td id="Td1" runat="server" width="100%"> 

        <table 
         ID="itemPlaceholderContainer" 
         runat="server" 
         style="width: 98%"> 
         <tr id="TrHeading" runat="server"> 
          <th id="Th1" style="width: 50%; text-align:left;" runat="server"> 
           Research Area</th> 
          <th id="Th2" style="width: 30%; text-align:right;" runat="server"> 
           Gross</th> 
          <th id="Th3" style="width: 20%; text-align:right;" runat="server"> 
           All Gross</th> 
         </tr>      
        </table> 

        <div style="overflow-y:scroll; height:400px;"> 
         <table style="border: 10px; width: 100%"> 
          <tr ID="itemPlaceholder" runat="server"></tr> 
         </table>        
        </div> 

       </td> 
      </tr> 

      <tr id="Tr2" runat="server"> 
       <td id="Td2" runat="server" 
        style="text-align: center;background-color: #5D7B9D;font-family: Verdana, Arial, Helvetica, sans-serif;color: #FFFFFF"> 
       </td> 
      </tr> 

      <tr id="TrFooter" runat="server"> 
       <td style="width: 50%; text-align:left;"> 
        <b>Total(s)</b> 
       </td> 
       <td id="TdTotal" style="width: 30%; text-align:right;"> 
        <b> 
         <asp:Label ID="lblTotalFunding" runat="server" /></b> 
       </td> 
       <td id="TdTotal" style="width: 20%; text-align:left;"> 
        <b> 
         <asp:Label ID="lblTotalGross" runat="server" /></b> 
       </td> 
      </tr> 
     </table> 
    </LayoutTemplate>   
</asp:ListView> 

im lvFundingSummary_PreRender Ereignis, ich versuche, die Kontrolle als solche zuzugreifen:

Label lbTotFund = this.lvFundingSummary.FindControl("TrFooter").FindControl("lblTotalFunding") as Label 

aber das funktioniert nicht. Ich weiß, das sollte ein Kinderspiel sein, kann es einfach nicht finden.

Antwort

1

Nach this post verwenden

var lbTotFund = lvFundingSummary.FindControl("lblTotalFunding") as Label;

in lvFundingSummary_LayoutCreated Fall sollte es die Arbeit

+0

Danke Sir tun! Lief wie am Schnürchen. – TrevorGoodchild