- 首先在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的当前值为原始值
- }
- }
- }