2011-09-02 118 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(); 
    }