将下拉列表绑定到已在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";
感谢您的快速响应。订单没有错。只是觉得我的编辑链接是错误的。当我点击编辑时,要编辑的行就是上一页。 – 2013-03-18 12:23:46