应该在 ItemDataBound(object sender, DataGridItemEventArgs e)事件中绑定
是不是应该是先给datagrid赋值,然后绑定gropdownlist
现在我的dropdownlist中没有初始值,我不知道这个该怎么写
不用,只不过如果datagrid没有数据源,dropdownlist即使绑定了也不会显示啊
你就把绑定dropdownlist的代码写到ItemDataBound这个事件中就行,在datagrid加载数据的时候,dropdownlist就会自行绑定了
@白雲天: datagrid有数据源的,dropdownlist也绑好了,我的意思是不会写dropdownlist中应该显示的初始值,现在所有记录都是一样的值
就像ddl.text=e.item........之类的,这个该怎么写啊
我还是表达的不清楚,应该是datagrid绑定的时候dropdownlist应该是有值的,但现在显示不出来
cs代码:
//绑定datagrid
protected void Page_Load(object sender, EventArgs e)
{
this.datagrid1.DataSource = BackTable();
this.datagrid1.DataBind();
}
//生成数据源
public DataTable BackTable()
{
DataTable table = new DataTable();
table.Columns.Add("col1");
table.Columns.Add("col2");
for (int i = 0; i < 5; i++)
{
DataRow row = table.NewRow();
row["col1"] = i;
row["col2"] = "text" + i.ToString();
table.Rows.Add(row);
}
return table;
}
//在ItemDataBound事件中绑定dropdownlist
protected void datagrid1_ItemDataBound1(object sender, DataGridItemEventArgs e)
{
DropDownList list = e.Item.FindControl("ddl_select") as DropDownList;
if (list != null)
{
list.DataSource = BackTable(); //指定数据源
list.DataTextField = "col2"; //text
list.DataValueField = "col1"; //value
list.DataBind();
list.Items.Insert(0, new ListItem("请选择",""));//显示默认值
}
}
根据你的需要改一下就可以了,主要是事件中的代码
记得上一次 你问的 有一个兄弟 回给你一个gridview 72 绝技么? 去那里找找