将下拉列表绑定到已在GridView上的ItemTemplate中显示的值上编辑

问题描述:

我必须将我的下拉列表值绑定到我的编辑模板。下面是我的下拉列表的代码。上述将下拉列表绑定到已在GridView上的ItemTemplate中显示的值上编辑

protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    //Check if this is our Blank Row being databound, if so make the row invisible 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 

     if (((DataRowView)e.Row.DataItem)["CertificateNo"].ToString() == String.Empty) e.Row.Visible = false; 
     //Check if is in edit mode 
     if ((e.Row.RowState & DataControlRowState.Edit) > 0) 
     { 
      DropDownList DropDownListStatus = (DropDownList)e.Row.FindControl("DropDownListStatus"); 
      //Bind status data to dropdownlist 
      DropDownListStatus.DataTextField = "Status"; 
      DropDownListStatus.DataValueField = "Status"; 
      DropDownListStatus.DataSource = RetrieveStatus(); 
      DropDownListStatus.DataBind(); 
      DataRowView dr = e.Row.DataItem as DataRowView; 
      DropDownListStatus.SelectedValue = dr["Status"].ToString(); 
      } 


    } 
} 

private DataTable RetrieveStatus() 
{ 
    //fetch the connection string from web.config 
    string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
    //SQL statement to fetch entries from products 
    string sql = @"Select distinct Status from cpd_certificates"; 
    DataTable dtStatus = new DataTable(); 
    //Open SQL Connection 
    using (SqlConnection conn = new SqlConnection(connString)) 
    { 
     conn.Open(); 
     //Initialize command object 
     using (SqlCommand cmd = new SqlCommand(sql, conn)) 
     { 
      SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
      //Fill the result set 
      adapter.Fill(dtStatus); 
     } 
    } 
    return dtStatus; 
} 

代码填充我的下拉列表。但是,当我点击编辑我的下拉列表不填充。 这里是我的下拉列表代码:

<asp:TemplateField HeaderText="Status" SortExpression="Status"> 
              <ItemTemplate><%# Eval("Status")%></ItemTemplate> 
              <EditItemTemplate> 
               <asp:DropDownList ID="DropDownListStatus" runat="server"> 
               </asp:DropDownList> 

              </EditItemTemplate> 
              <FooterTemplate> 
               <asp:DropDownList ID="DropDownListStatus" runat="server" > 

               </asp:DropDownList> 

              </FooterTemplate> 
             </asp:TemplateField> 

你的代码快速浏览显示您在指定的值给你dropdownlist.First数据源分配给您的下拉列表,然后分配datavalue-字段的顺序有误数据源分配后的datatext字段属性。

DropDownListStatus.DataSource = RetrieveStatus(); 
DropDownListStatus.DataTextField = "Status"; 
DropDownListStatus.DataValueField = "Status"; 
+1

感谢您的快速响应。订单没有错。只是觉得我的编辑链接是错误的。当我点击编辑时,要编辑的行就是上一页。 – 2013-03-18 12:23:46