页面代码:
<asp:TemplateField HeaderText="标题" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:DropDownList ID="list_xx" runat="server" AutoPostBack="True">
<asp:ListItem Value="1">aa</asp:ListItem>
<asp:ListItem Value="0">bb</asp:ListItem>
<asp:ListItem Value="2">bb</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate><asp:Label runat="server" ID="lab_xx" Text="xx"></asp:Label></ItemTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
这是.cs页面
protected void gridview_OnRowEditing(object sender, GridViewEditEventArgs e)
{
gridview.EditIndex = e.NewEditIndex;
string selectValue = ((Label)ViewMsg.Rows[e.NewEditIndex].FindControl("lab_xx")).Text;
BindData();
((DropDownList)ViewMsg.Rows[e.NewEditIndex].FindControl("list_xx")).Text = selectValue;
}
1、此段代码放置在gridview的rowEditing事件中
2、获取编辑之前的控件的值 的代码应放置在 gridview数据重新绑定之前,给dropdownlist赋值的代码放置在gridview数据重新绑定之后,否则会找不到控件的值