2016-01-27 50 views
2

我想在RowBound事件下的EditItemTemplate下的GridView中綁定dropdownlist。但它給了我在下拉列表中的空行:這是我設計在gridview中編輯項目模板中的下拉列表的編程

<asp:TemplateField HeaderText="Description"> 
    <ItemTemplate> 
     <asp:Label ID="lblDescription" runat="server" Text='<%# Bind("Description") %>' Width="400px"></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:Label ID="lblCity" runat="server" Text='<%# Bind("Description") %>'></asp:Label> 
     <asp:DropDownList ID="ddlCities" runat="server" Width="400px"></asp:DropDownList> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:DropDownList ID="ddlNewDescFooter" runat="server" Width="400px" OnSelectedIndexChanged="ddlCitiesFooter_SelectedIndexChanged"> 
     </asp:DropDownList> 
    </FooterTemplate> 
</asp:TemplateField> 

現在,這裏是我行DataBound事件:

protected void grdFerries_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowState == DataControlRowState.Edit) 
    { 
     DropDownList ddlCities = (DropDownList)e.Row.FindControl("ddlCities"); 
     DataAccessClass DAC = new DataAccessClass(); 
     string Query = "select description from JoursFeries where Year(JoursFeries.date) >= Year(GETDATE()) order by date asc"; 
     DataTable dtddl = DAC.ReturnDatatablefromQuery(Query, DBConnectionString); 
     ddlCities.DataSource = dtddl; 
     ddlCities.DataTextField = "description"; 
     ddlCities.DataValueField = "description"; 
     ddlCities.DataBind(); 
     ddlCities.Items.Insert(0, new ListItem("--Select--", "0")); 
    } 
} 

我越來越空白下拉列表。請幫助。

回答

1

這是因爲您編寫的代碼塊永遠不會被執行。您需要檢查該行是否爲DataRow而不是狀態。您將不得不檢查被限制的行是否處於編輯模式。這應該適合你: -

if (e.Row.RowType == DataControlRowType.DataRow && grdFerries.EditIndex == e.Row.RowIndex) 
{ 
    DropDownList ddlCities = (DropDownList)e.Row.FindControl("ddlCities"); 
    DataAccessClass DAC = new DataAccessClass(); 
    ..and so on 
} 
+0

謝謝Rahul,但仍然按照您的答覆編輯代碼後,我有同樣的問題dropdownlist是空白的。我在Gridview的RowDataBound事件中添加了代碼。 –

+0

@Abhishek_Chourasia - 你在'OnRowEditing'事件中重新表達gridview嗎?沒有它,它不會工作。 –

+0

是Rahul,行編輯(grdFerries_RowEditing),我正在重新綁定網格: 行編輯代碼: grdFerries.SelectedIndex = e.NewEditIndex; FillDataGridView(); –

相關問題