首先在gridview里添加一个TemplateField,也可以在.aspx页里相应位置直接写如下代码:
<asp:TemplateField HeaderText="负责人">
<ItemTemplate>
<%# Eval("Manager") %>//非编辑状态下此列显示的内容
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlManager" runat="server">
</asp:DropDownList>
</EditItemTemplate>
<ControlStyle Width="50px" />
<HeaderStyle Width="50px" />
<ItemStyle Width="50px" />
</asp:TemplateField>
在.cs中写如下事件:
protected void gridview1_RowDataBound(object sender,GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.FindControl("ddlManager") != null)
{
DropDownList ddl = (DropDownList)e.Row.FindControl("ddlManager");
string strSql = "select NameVc from v_UserList";
ddl.DataSource = DataOperation.BindToControls(strSql);//将数据绑定到dropdownlist上
ddl.DataValueField = "NameVc";
ddl.DataTextField = "NameVc";
ddl.DataBind();
ddl.SelectedValue = DataBinder.Eval(e.Row.DataItem, "ManagerVc").ToString();//使点击编辑后dropdownlist的当前值为原始值
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hakule/archive/2008/11/07/3238564.aspx