ASP.NET 【GridView 问题】 System.Web.UI.LiteralControl”的对象强制转换为类型System.Web.UI.WebContro 5
在GridView中添加编辑这个功能,直接可以在GridView列表中编辑数据,但保存时便出现这个错误………………//更新protectedvoidGridView1_R...
在GridView 中添加编辑这个功能,直接可以在GridView 列表中编辑数据,但保存时便出现这个错误………………
//更新
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = "update 班基础信息表 set 班名称='"
+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() +
"',隶属工序名称='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() +
"',隶属工序编号='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() +
"',负责人姓名='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() +
"',负责人编号='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim() +
"',联系方式='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString().Trim() +
"',考勤标识='" + ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[7].Controls[0])).Text.ToString().Trim() +
"' where 班编号='"+ dataGridV.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom=new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
dataGridV.EditIndex = -1;
bind();
}
我也看到百度上有类似解答,但都不成立,在此求解答
问题结束还有4天,能解决该问题会共追加30分! 展开
//更新
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = "update 班基础信息表 set 班名称='"
+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() +
"',隶属工序名称='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() +
"',隶属工序编号='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() +
"',负责人姓名='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() +
"',负责人编号='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim() +
"',联系方式='"+ ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString().Trim() +
"',考勤标识='" + ((TextBox)(dataGridV.Rows[e.RowIndex].Cells[7].Controls[0])).Text.ToString().Trim() +
"' where 班编号='"+ dataGridV.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom=new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
dataGridV.EditIndex = -1;
bind();
}
我也看到百度上有类似解答,但都不成立,在此求解答
问题结束还有4天,能解决该问题会共追加30分! 展开
展开全部
强制转换出错。
试试:
把((TextBox)(dataGridV.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim()
改成:dataGridV.Rows[e.RowIndex].Cells[1].Text.ToString().Trim();
试试:
把((TextBox)(dataGridV.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim()
改成:dataGridV.Rows[e.RowIndex].Cells[1].Text.ToString().Trim();
更多追问追答
追问
嗯……倒是不显示错误了,但是执行“编辑”后,会出现混乱。比如你编辑编号为02的班信息,结果会把另一个(不确定哪个)除编号外数据全部删除……还请解释下这是什么问题,是Cell[*]内编号的问题吗?
追答
编辑用的是update语句,怎么会删除数据?
你可以查下gridview 72绝技,那里面有怎么做编辑、删除按钮的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是控件类型不匹配,有的列不是textbox
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试 FindControl(" ") 去找内嵌的控件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询