后台代码
/// <summary>
/// 对行进行绑定(主要是为了对下拉框)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e )
{
//判断是否是DataRow,以防止鼠标经过Header也有效果
if (e.Row.RowType == DataControlRowType.DataRow)
{
//行的状态是: 编辑状态 或者 (交替行且是编辑状态)
if (e.Row.RowState == DataControlRowState.Edit ||e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
{
//下面是绑定DropDownList,根据Gridview Cells中显示的内容查找数据库,如果存在相关信息就显示DropDownList,并绑定
DropDownList DropDL = (DropDownList)e.Row.FindControl("DropDownList1");
TextBox txt_DropDL = ((TextBox)e.Row.FindControl("Label1"));
DB dbDropDL=new DB();
DataTable dtDropDL=new DataTable();
dtDropDL=dbDropDL.GetTable("select * from best");
DropDL.DataSource=dtDropDL;
DropDL.DataTextField = "bestfood2";
DropDL.DataValueField = "bestfood2";
DropDL.DataBind();
DropDL.Items.Insert(0, "–DropDL–");
DropDL.Items[0].Value = "0";
DropDL.Visible = true;
}
}
}
//-------------------------------------------------------------------------
前台代码
这是在GridView1里面的 当本行在编辑状态下 就变成下拉框 并且绑定了 数据
<asp:TemplateField HeaderText="GFOOD">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" >
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("bestfood") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>