2011-03-23 77 views
1

綁定表達式假設我有以下類問題與GridView控件

public partial class invoice 
{ 
public list<lineitem> lineitem; 
} 

public partial class lineitem 
{ 
    private Quantity quantity = new Quantity(); 
     public Quantity Quantity 
     { 
      get { return quantity; } 
      set { quantity = value; } 

     } 
} 

如何綁定值到GridView。

public void lbluom_OnDataBinding(object sender, System.EventArgs e) 
{ 
      for (int i = 0; i < invoicetransmit.Invoice.Count; i++) 
      { 
       Label lbl = (Label)sender; 
       lbl.Text = 
       invoicetransmit.Invoice[0].LineItem[i].Quantity.Value.ToString(); 
      } 

如果我在GridView做到這一點的值被改寫的最新值......和下​​面這一個

public void lbluom_OnDataBinding(object sender, System.EventArgs e) 
     { 
      for (int i = 0; i < invoicetransmit.Invoice.Count; i++) 
      { 
       Label lbl = (Label)sender; 
       lbl.Text = Eval("Value")     
      } property does not exist. 
     } 
    } 

這是我的附加價值電網

public void Addtogrid() 
    { 
     //var lineItems = (Session["BillXML"] as InvoiceTransmission).Invoice[0].LineItem; 
     invoicetransmit.Invoice[0].LineItem.Add(new LineItem {MaterialCode = MaterialCode.Text, ChargeCode = ChargeCode.Text, CostCenter = CostCenter.Text, GLAccount = GLAccount.Text }); 

     //lineItems.Add(new LineItem { MaterialCode=MaterialCode.Text,ChargeCode=ChargeCode.Text,CostCenter=CostCenter.Text,GLAccount=GLAccount.Text}); 
     for (int i = 0; i < invoicetransmit.Invoice[0].LineItem.Count; i++) 
     { 
      invoicetransmit.Invoice[0].LineItem[i].Quantity.UOMCode = UOM.Text; 
      invoicetransmit.Invoice[0].LineItem[i].Quantity.Value = Convert.ToDecimal(Quantity.Text); 
      invoicetransmit.Invoice[0].LineItem[i].UnitPrice.Value = Convert.ToDecimal(Price.Text); 
      //invoicetransmit.Invoice[0].LineItem[i].TotalNetAmount = (invoicetransmit.Invoice[0].LineItem[i].Quantity.Value) * (invoicetransmit.Invoice[0].LineItem[i].UnitPrice.Value); 
      invoicetransmit.Invoice[0].LineItem[i].TotalNetAmount = (Convert.ToDecimal(Quantity.Text))* (Convert.ToDecimal(Price.Text)); 
      GridView1.DataSource = invoicetransmit.Invoice[0].LineItem; 
      // GridView1.DataSource = lineItems; 
      GridView1.DataBind(); 
      //} 

請幫我解決這個問題

+0

是asp.net,不是嗎? – 2011-03-23 18:18:27

+0

是的,它可以幫助我吧 – Janaki 2011-03-23 18:20:15

+0

最後一個代碼塊中的_property不存在_位是什麼!? – gideon 2011-03-23 18:24:33

回答

0

嘗試RowDataBound事件

<asp:GridView ID="GridView1" runat="server" 
     onrowdatabound="GridView1_RowDataBound"> 
     <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     Label lbl = (Label) e.Row.FindControl("Label1"); 
     if(lbl!=null) 
     { 
      lbl.Text = invoicetransmit.Invoice[0].LineItem[e.Row.RowIndex].Quantity.Value.ToString(); 
     } 
    } 

} 
+0

我仍然將第一行替換爲第二行中的值。我也上傳了我用來上傳列表中的值的代碼。 – Janaki 2011-03-23 18:50:51