我的RowDataBound中,为什么e.Row.RowType == DataControlRowType.DataRow这里始终通不过,不知道为什么..
DB ljjdb = new DB();
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.RowState & DataControlRowState.Edit) == 0)
{
//保存当前行的au_id的值
//string au_id = ((TextBox)(GridView_Manager.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
string au_id = this.GridView_Manager.DataKeys[e.Row.RowIndex]["id"].ToString();
//对DropDownList做数据绑定
DropDownList dropTemp = (DropDownList)e.Row.Cells[3].FindControl("dropTemp"); if (dropTemp != null)
{
string strSQL = "select * from WCM_Magager_Level";
SqlCommand cmd = new SqlCommand(strSQL, ljjdb.myConnection);
ljjdb.myConnection.Open(); dropTemp.DataSource = cmd.ExecuteReader();
dropTemp.DataTextField = "level_name";
dropTemp.DataValueField = "id";
dropTemp.DataBind(); //到DropDownList中根据au_id的值去找需要设置为选中状态的项目,将其设置为选中
ListItem item = dropTemp.Items.FindByText(au_id);
if (item != null)
{
item.Selected = true;
}
ljjdb.myConnection.Close();
}
} }
DB ljjdb = new DB();
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.RowState & DataControlRowState.Edit) == 0)
{
//保存当前行的au_id的值
//string au_id = ((TextBox)(GridView_Manager.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
string au_id = this.GridView_Manager.DataKeys[e.Row.RowIndex]["id"].ToString();
//对DropDownList做数据绑定
DropDownList dropTemp = (DropDownList)e.Row.Cells[3].FindControl("dropTemp"); if (dropTemp != null)
{
string strSQL = "select * from WCM_Magager_Level";
SqlCommand cmd = new SqlCommand(strSQL, ljjdb.myConnection);
ljjdb.myConnection.Open(); dropTemp.DataSource = cmd.ExecuteReader();
dropTemp.DataTextField = "level_name";
dropTemp.DataValueField = "id";
dropTemp.DataBind(); //到DropDownList中根据au_id的值去找需要设置为选中状态的项目,将其设置为选中
ListItem item = dropTemp.Items.FindByText(au_id);
if (item != null)
{
item.Selected = true;
}
ljjdb.myConnection.Close();
}
} }
if ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
什么意思?是编译通不过,还是在执行的时候条件不正确?
是if ((e.Row.RowState & DataControlRowState.Edit) == 0)这句话一直条件不成立,就执行不到下边的语句了,不知道为什么是不是要写成如下的样子:
if ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit
还是不行写成这样.也不成立2边..
这个帖子的内容,他都是放在RowDataBound里的...我也是才接触2,0有很多不是很了解,望老师们
多指点指点迷津~
这句主要是判断 e.Row.RowState 是否是Edit状态。
你这边不需要要做这个判断。
DB ljjdb = new DB();
if (e.Row.RowType == DataControlRowType.DataRow)
{
//保存当前行的au_id的值
string au_id = this.GridView_Manager.DataKeys[e.Row.RowIndex]["id"].ToString();
//对DropDownList做数据绑定
DropDownList dropTemp = (DropDownList)e.Row.Cells[3].FindControl("dropTemp"); if (dropTemp != null)
{
string strSQL = "select * from WCM_Magager_Level";
SqlCommand cmd = new SqlCommand(strSQL, ljjdb.myConnection);
ljjdb.myConnection.Open(); dropTemp.item.Clear();
dropTemp.DataSource = cmd.ExecuteReader();
dropTemp.DataTextField = "level_name";
dropTemp.DataValueField = "id";
dropTemp.DataBind(); //到DropDownList中根据au_id的值去找需要设置为选中状态的项目,将其设置为选中
ListItem item = dropTemp.Items.FindByValue(au_id);
if (item != null)
{
item.Selected = true;
}
ljjdb.myConnection.Close();
}
}