我有一个用于显示产品细节的网格视图。另一件事是有一个表。 ProductMaster。 gridview中的数据来自这个表格。现在,我要的是,在当页面加载第一次,只有第一栏应填,它包含含有产品名称下拉列表中。所有其他行应该是空的。现在,当用户从下拉列表中的项目,当时其他列应该得到repectively填充和其他空行会出现如下填写一行。每当页面加载会出现只有一个空行(第一列下拉列表中就会充满产品)添加在网格视图行动态
我怎样才能实现这个任务??????
我有一个用于显示产品细节的网格视图。另一件事是有一个表。 ProductMaster。 gridview中的数据来自这个表格。现在,我要的是,在当页面加载第一次,只有第一栏应填,它包含含有产品名称下拉列表中。所有其他行应该是空的。现在,当用户从下拉列表中的项目,当时其他列应该得到repectively填充和其他空行会出现如下填写一行。每当页面加载会出现只有一个空行(第一列下拉列表中就会充满产品)添加在网格视图行动态
我怎样才能实现这个任务??????
添加DropDownList
内TemplateColumn
和OnRowDataBound
事件与产品名称填写,并代替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();
}