7,540
社区成员
发帖
与我相关
我的任务
分享
DataSet dataSet;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = GetDs();
dataSet = GetDs(); //得到dropdownlist的数据源
this.gvTest.DataSource = ds.Tables[0]; //随便找个数据源绑上gridview(这里为了方便就用dropdownlist的数据源了)
this.gvTest.DataBind();
}
}
private DataSet GetDs() //获取dropdownlist的数据源
{
System.Data.SqlClient.SqlConnection con = new SqlConnection("Server=.;database=northwind;uid=sa;pwd=858248");
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "select top 10 orderID from orders";
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "t");
return ds;
}
protected void gvTest_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > -1) //不绑定gridview header
{
DropDownList ddlTest = (DropDownList)e.Row.FindControl("ddlTest");
ddlTest.DataSource = this.dataSet.Tables[0];
ddlTest.DataTextField = "orderid"; //显示值
ddlTest.DataValueField = "orderid"; //实际值
ddlTest.DataBind();
}
}
<asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="false" OnRowDataBound="gvTest_RowDataBound" >
<Columns>
<asp:TemplateField HeaderText="name">
<ItemTemplate>
<asp:DropDownList ID = "ddlTest" runat="server" DataTextField="orderid" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>