簡體   English   中英

在轉發器中訪問對象數據

[英]Accessing Object data in repeater

我的asp.net Web表單頁面上有一個轉發器。

轉發器數據源是“OrderLine”對象的列表。

每個轉發器項都有一個TextBox控件,用於顯示訂單行的數量。

更改文本框控件中的數量時,會自動回發以重新計算OrderLine對象的total和discount值屬性。

我的問題是,是否有更好的方法直接訪問對象數據而不是獲取轉發器項的索引,並使用它來獲取如下所示的對象列表索引?

我想盡可能直接訪問對象,而不是創建臨時變量。

protected void txtLineQuantity_TextChanged(object sender, EventArgs e)
{
     RepeaterItem rItem = (RepeaterItem)((Control)sender).NamingContainer;
     int i = rItem.ItemIndex;

     decimal netPrice = OrderLines[i].NetPrice;
     decimal netTotal = OrderLines[i].NetTotal;
     int qty = OrderLines[i].Quantity;
     decimal weight = OrderLines[i].Weight;

     TextBox txtLineQuantity = (TextBox)rItem.FindControl("txtLineQuantity");

     //... do calculations and bind data to repeater control
}

如果我錯過了任何需要的信息,請告訴我...

謝謝

您可以向RepeaterItem添加HiddenField控件。 將數據綁定到HiddenField。

ASP

 <asp:Repeater runat="server" ID="repeater">
     <ItemTemplate>
          <asp:HiddenField ID="hiddenNetPrice" runat="server" Value='<%# Eval("NetPrice") %>' />
          <!--Other Controls
     </ItemTemplate>
 </asp:Repeater>

C#

RepeaterItem rItem = (RepeaterItem)((Control)sender).NamingContainer;
var hiddenNetPrice= rItem.FindControl("hiddenNetPrice") as HiddenField;
var netPrice = hiddenNetPrice.Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM