重绑定后dgSinger的数据源已指向了新引用才有了DropDownList,
在原e.Item的位置没有DropDownList啊
所以这样改public void dgSinger_Edit(Object sender, DataGridCommandEventArgs e)
{ dgSinger.EditItemIndex = e.Item.ItemIndex;
Bind_dgSinger();
DropDownList DDLEditArea=(DropDownList)(dgSinger.Items[e.Item.ItemIndex].FindControl("DDLEditArea"));
Db AreaList=new Db();
string GetAreaSql = "select AreaID,Area From FF_Area";
OleDbDataReader ValueList=AreaList.GetList(GetAreaSql);
while (ValueList.Read())
{
ListItem clist = new ListItem(ValueList.GetString(1),ValueList.GetInt32(0).ToString());
DDLEditArea.Items.Add(clist);
}
ValueList.Close();
}
在原e.Item的位置没有DropDownList啊
所以这样改public void dgSinger_Edit(Object sender, DataGridCommandEventArgs e)
{ dgSinger.EditItemIndex = e.Item.ItemIndex;
Bind_dgSinger();
DropDownList DDLEditArea=(DropDownList)(dgSinger.Items[e.Item.ItemIndex].FindControl("DDLEditArea"));
Db AreaList=new Db();
string GetAreaSql = "select AreaID,Area From FF_Area";
OleDbDataReader ValueList=AreaList.GetList(GetAreaSql);
while (ValueList.Read())
{
ListItem clist = new ListItem(ValueList.GetString(1),ValueList.GetInt32(0).ToString());
DDLEditArea.Items.Add(clist);
}
ValueList.Close();
}
-----------------------------------------------------------
/// <summary>
/// Edit按钮按下,进入修改模式
/// </summary>
private void viewAdminGrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
viewAdminGrid.EditItemIndex = e.Item.ItemIndex;
BindGrid(); //加载所有角色
DropDownList lst = (DropDownList)viewAdminGrid.Items[e.Item.ItemIndex].Cells[3].FindControl("lstRole");
lst.DataSource = LoadRole();
lst.DataBind(); //获取原角色
DataView view = (DataView)Session["ds"];
string oldRole = view.Table.Rows[e.Item.ItemIndex]["ROLE"].ToString();
//将DropDownList的选中项设为原角色
Helper.SetListSelectedItem(lst,oldRole);
}/// <summary>
/// 获取所有角色
/// </summary>
/// <returns>所有角色,保存于ArrayList对象中</returns>
private ArrayList LoadRole()
{
MSBANK.BLL.AdminManagement bll = new MSBANK.BLL.AdminManagement();
return bll.GetRoleDescriptions();
}
Db AreaList=new Db();
string GetAreaSql = "select AreaID,Area From FF_Area";
OleDbDataReader ValueList=AreaList.GetList(GetAreaSql);
while (ValueList.Read())
{
ListItem clist = new ListItem(ValueList.GetString(1),ValueList.GetInt32(0).ToString());
DDLEditArea.Items.Add(clist);
这段话放到ItemDataBound事件里并加上
if(e.ItemType==ListItemType.Edit)
}
ValueList.Close();