我需要使用 c# 在 asp.net 中的 gridview edititemtemplate 中填充从数据库中获取的下拉列表选定值。
我不能这样做,因为在编辑下拉列表中的 gridview edititemtemplate 时,选择了默认值,而不是在数据库中注册的值。
protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView g2 = (GridView)sender;
g2.EditIndex = e.NewEditIndex;
GridViewRow gvCustomerRow = g2.NamingContainer as GridViewRow;
int customerId = (int)gvProducts.DataKeys[gvCustomerRow.RowIndex].Value;
sql = @String.Format(" SELECT * FROM `doTable` ");
sql += String.Format(" WHERE sID IN ('{0}') ", customerId);
g2.DataSource = GetData(sql);
g2.DataBind();
DateTime dateofBirth = new DateTime();
ddlMonth.DataSource = Enumerable.Range(1, 12).Select(a => new
{
MonthName = DateTimeFormatInfo.CurrentInfo.GetMonthName(a),
MonthNumber = a
});
ddlMonth.DataBind();
DropDownList ddlYear = (DropDownList)(g2.Rows[g2.EditIndex].FindControl("ddlYear"));
ddlYear.DataSource = Enumerable.Range(DateTime.Now.Year - 0, 12).Reverse();
ddlYear.DataBind();
ddlYear.Items.Insert(0, new ListItem("0001", "0001"));
ddlday.SelectedValue = dateofBirth.Day.ToString();
ddlMonth.SelectedValue = dateofBirth.Month.ToString();
ddlYear.SelectedValue = dateofBirth.Year.ToString();
ddlday.DataSource = Enumerable.Range(1, DateTime.DaysInMonth(DateTime.Now.Year,
Convert.ToInt32(ddlMonth.SelectedValue)));
ddlday.DataBind();
}