2011-09-02 114 views
0

我有一個用於顯示產品細節的網格視圖。另一件事是有一個表。 ProductMaster。 gridview中的數據來自這個表格。現在,我要的是,在當頁面加載第一次,只有第一欄應填,它包含含有產品名稱下拉列表中。所有其他行應該是空的。現在,當用戶從下拉列表中的項目,當時其他列應該得到repectively填充和其他空行會出現如下填寫一行。每當頁面加載會出現只有一個空行(第一列下拉列表中就會充滿產品)添加在網格視圖行動態

我怎樣才能實現這個任務??????

回答

1

檢查這篇文章出來:http://geekswithblogs.net/dotNETvinz/archive/2009/06/04/adding-dynamic-rows-in-gridview-with-textboxes.aspx

添加DropDownListTemplateColumnOnRowDataBound事件與產品名稱填寫,並代替Click事件Button中提到的文章解釋你必須處理SelectedIndexChanged事件的DropDownList,得到其中包含此DropDownList並填寫該行的其他列上排的參考。

ASPX:

<Columns> 
    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:DropDownList ID="cmbProduct" runat="server" OnSelectedIndexChanged="cmbProduct_Changed" AutoPostBack="true" > 
      </asp:DropDownList> 
     </ItemTemplate> 
... 
</Columns> 

後面的代碼:

protected void cmbProduct_Changed(object sender, EventArgs e) 
    { 
     DropDownList cmbProduct = (DropDownList)sender; 
     GridViewRow parentRow = (GridViewRow)cmbProduct.NamingContainer; 
     string selectedProdId = cmbProduct.SelectedValue; 
     /* Fetch product details & bind other columns/controls with product details */ 
     Label lbl = (Label)parentRow.FindControl("lblProductName"); 
     lbl.Text = "...."; 

     /* Call AddNewRowToGrid explaied in article*/ 
     AddNewRowToGrid(); 
    }