{
YycfBindDDL.EditIndex = e.NewEditIndex;
YycfBindDDL.DataSource = ds;
YycfBindDDL.DataBind();
DropDownList ddl = (DropDownList)YycfBindDDL.Rows[e.NewEditIndex].FindControl("ddl");
sql = "select testname from yamzef group by testname";
ds = db.getDataset(sql, "ddl");
ddl.DataSource = ds.Tables["ddl"];
ddl.DataValueField = "testname";
ddl.DataMember = "testname";
ddl.SelectedValue = YycfBindDDL.DataKeys[e.NewEditIndex].Value.ToString();
ddl.DataBind();
}
2、首先,要把编辑列设模板列,然后dropdownlist绑定数据源
然后在databinding里把selectedvalue的值绑定到要更新的列名上
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns=False DataKeyNames="id"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" SortExpression="id" />
<asp:TemplateField HeaderText="yycf" SortExpression="yycf">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1"
DataTextField="power_id" DataValueField="power_id" SelectedValue='<%# Bind("yycf") %>'>
</asp:DropDownList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:cmssConnectionString %>"
SelectCommand="SELECT [power_id] FROM [power]"></asp:SqlDataSource>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("yycf") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
</td>
</tr>
<tr>
<td style="width: 73px">
</td>
<td style="width: 100px">
<asp:SqlDataSource ID="SqlDataSource1" runat="server" UpdateCommand ="update admin set yycf=@yycf where id=@original_id" OldValuesParameterFormatString ="original_id" ConnectionString="<%$ ConnectionStrings:cmssConnectionString %>"
SelectCommand="SELECT [yycf], [id] FROM [admin]"></asp:SqlDataSource>
</td>
OK,就这样搞定了!~