我有一個用於顯示產品細節的網格視圖。另一件事是有一個表。 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();
}