public partial class _Default : System.Web.UI.Page ... { protected void Page_Load(object sender, EventArgs e) ...{ if (!this.IsPostBack) ...{ bindData(); } } public void bindData() ...{ string strSql = ConfigurationManager.AppSettings["strcon"].ToString(); SqlConnection con = new SqlConnection(strSql); SqlCommand cmd = new SqlCommand("select * from test where id =2",con); con.Open(); SqlDataReader read = cmd.ExecuteReader(); DetailsView1.DataSource=read; DetailsView1.DataBind(); DropDownList drpsex = DetailsView1.FindControl("drpsex") as DropDownList; Label lblsex = DetailsView1.FindControl("lblsex") as Label; //SqlDataReader reader = bindToDrop(); //drpsex.DataSource = reader; //drpsex.DataBind(); //drpsex.SelectedIndex = drpsex.Items.IndexOf(drpsex.Items.FindByText(lblsex.Text.Trim())); //lblsex.Text.Trim(); } protected void DetailsView1_ItemCommand(object sender, DetailsViewCommandEventArgs e) ...{ //if (e.CommandName.Equals("Edit"))//实现一 //{ // DetailsView1.ChangeMode(DetailsViewMode.Edit); //} //bindData(); } protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e) ...{ //DetailsView1.ChangeMode(DetailsViewMode.Edit); //bindData(); //实现二 if (DetailsView1.CurrentMode == DetailsViewMode.ReadOnly) ...{ DetailsView1.ChangeMode(DetailsViewMode.Edit); } else if (DetailsView1.CurrentMode == DetailsViewMode.Edit) ...{ DetailsView1.ChangeMode(DetailsViewMode.ReadOnly); } bindData(); } public SqlDataReader bindToDrop() ...{ string strSql = ConfigurationManager.AppSettings["strcon"].ToString(); SqlConnection con = new SqlConnection(strSql); SqlCommand cmd = new SqlCommand("select distinct sex from test", con); con.Open(); SqlDataReader read = cmd.ExecuteReader(); return read; } protected void DetailsView1_ModeChanged(object sender, EventArgs e) ...{ } protected void DetailsView1_DataBound(object sender, EventArgs e) ...{ } protected void DetailsView1_PreRender(object sender, EventArgs e) ...{ //实现dropdownlist 在编辑的时候显示一样的值 if (this.IsPostBack) ...{ if (DetailsView1.CurrentMode == DetailsViewMode.Edit) ...{ DropDownList drpsex = DetailsView1.FindControl("drpsex") as DropDownList; Label lblsex = DetailsView1.FindControl("lblsex") as Label; drpsex.DataSource = bindToDrop(); drpsex.DataBind(); drpsex.SelectedValue = lblsex.Text.Trim(); } } }} ============================================================================================== 前台 < form id = " form1 " runat = " server " > < div > < asp:DetailsView ID = " DetailsView1 " runat = " server " AutoGenerateRows = " False " Height = " 50px " Width = " 125px " OnItemCommand = " DetailsView1_ItemCommand " OnModeChanging = " DetailsView1_ModeChanging " OnModeChanged = " DetailsView1_ModeChanged " OnDataBound = " DetailsView1_DataBound " OnPreRender = " DetailsView1_PreRender " > < Fields > < asp:TemplateField HeaderText = " Name " > < EditItemTemplate > < asp:TextBox ID = " TextBox1 " runat = " server " Text = ' <%# Bind("name") %> ' ></ asp:TextBox > </ EditItemTemplate > < InsertItemTemplate > < asp:TextBox ID = " TextBox1 " runat = " server " Text = ' <%# Bind("name") %> ' ></ asp:TextBox > </ InsertItemTemplate > < ItemTemplate > < asp:Label ID = " Label1 " runat = " server " Text = ' <%# Bind("name") %> ' ></ asp:Label > </ ItemTemplate > </ asp:TemplateField > < asp:TemplateField HeaderText = " Sex " > < EditItemTemplate > < asp:DropDownList ID = " drpsex " runat = " server " DataSource = " <%# bindToDrop() %> " DataTextField = " sex " ></ asp:DropDownList > </ EditItemTemplate > < InsertItemTemplate > < asp:TextBox ID = " TextBox2 " runat = " server " Text = ' <%# Bind("sex") %> ' ></ asp:TextBox > </ InsertItemTemplate > < ItemTemplate > < asp:Label ID = " Label2 " runat = " server " Text = ' <%# Bind("sex") %> ' ></ asp:Label > </ ItemTemplate > </ asp:TemplateField > < asp:TemplateField > < ItemTemplate > < asp:Label ID = " lblsex " runat = " server " Text = ' <%# Bind("sex") %> ' ></ asp:Label > </ ItemTemplate > </ asp:TemplateField > < asp:TemplateField ShowHeader = " False " > < EditItemTemplate > < asp:Button ID = " Button1 " runat = " server " CausesValidation = " True " CommandName = " Update " Text = " 更新 " />& nbsp; < asp:Button ID = " Button2 " runat = " server " CausesValidation = " False " CommandName = " Cancel " Text = " 取消 " /> </ EditItemTemplate > < ItemTemplate > < asp:Button ID = " Button1 " runat = " server " CausesValidation = " False " CommandName = " Edit " Text = " 编辑 " /> </ ItemTemplate > </ asp:TemplateField > </ Fields > </ asp:DetailsView > </ div > </ form >