我有一个Gridview,它使用数据集填充数据。
我还有一个DropDownlist,它是EditTemplate
的{{1}}。
我想将它绑定到数据集,以便它可以从中填充数据。我搜索它但它似乎不起作用。我是新手。如果不是代码,有些人会帮助我获得一个好的教程。
见下我的代码片段:
`
TemplateField
评论的代码就是我尝试过的。
由于
答案 0 :(得分:4)
试试这个。
protected void gvEmp_RowEditing(object sender, GridViewEditEventArgs e)
{
DemoGrid.EditIndex = e.NewEditIndex;
BindGrid();
DropDownList dropdown = gvEmp.Rows[e.NewEditIndex].FindControl("DropDownList1") as DropDownList;
BindDropDown(dropdown);
}
private void BindDropDown(DropDownList temp)
{
string connectionString = "Password=priyal;User ID=priyal;Initial Catalog=asptest;Data Source=dbsvr";
string query = "select deptno from employees";
DataSet dataset = new DataSet("Employees");
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
adapter.Fill(dataset);
}
}
temp.DataSource = dataset;
temp.DataTextField = "deptno";
temp.DataValueField = "deptno";
temp.DataBind();
}
除非您将行DropDownList
作为参数传递,否则BindDropDown
如何识别哪个DropDownList
要绑定?
答案 1 :(得分:1)
我认为你很接近 - 在BindDropDown()方法中尝试这个:
// Set the DropDownList's DataSource (originally you were setting the GridView's DataSource
((DropDownList)gvEmp.FindControl("ddlDept")).DataSource = ds;
// Call DataBind() on the DropDownList
((DropDownList)gvEmp.FindControl("ddlDept")).DataBind();
您需要在GridView中找到控件,将其转换为正确的控件类型(在本例中为DropDownList),然后对其执行操作。