谁做过用DataGrid的模板列做编辑、更新、取消操作?

dongqgc 2003-09-29 11:40:38
我的数据邦定到DataGrid上,有的列需要用户修改、有些不需修改的,现在我是用DataGrid的模板列来邦定数据的,请问在做更新操作时,和普通的邦定列有什么不同,同样的语句,普通的邦定可以更新,而用模列怎么也不行。。。为什么?
那位兄弟写过这个更新事件上的语句,让俺参考一下可以吗?谢谢!
...全文
29 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
elite2018 2003-10-02
  • 打赏
  • 举报
回复
哦 , 好像没有 错, 你 只 贴出了 DataGrid1_UpdateCommand 的 方法 ,但是 一般这种 错误 不止是 这段 代码 产生的 , 比如 公共类 , 前端 aspx 等 ,
dongqgc 2003-09-30
  • 打赏
  • 举报
回复
那位兄弟能让我结贴呀?谢谢!
seesea125 2003-09-29
  • 打赏
  • 举报
回复
web.config
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
dongqgc 2003-09-29
  • 打赏
  • 举报
回复
chentaoyql(chentaoyql)兄,
你说的"Controls[这是模板列控件索引])"是什么意思?普通的邦定列是Controls[0],而模板列用Controls[1]行吗?
现在不可编辑的我用label显示,请看下面什么地方错了呀?
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string strUpdata="update wqnews set heading=@heading,author=@author,source=@source,addtime=@addtime,hits=@hits where newsid=@newsid";
string strconn="server=194.1.8.70;database=AspNetPager;uid=sa;pwd=760421";
SqlConnection myConn=new SqlConnection(strconn);
SqlCommand myCmd=new SqlCommand(strUpdata,myConn);
myCmd.Parameters.Add(new SqlParameter("@newsid",SqlDbType.Int,4));
myCmd.Parameters["@newsid"].Value=((Label)e.Item.Cells[1].Controls[1]).Text;
myCmd.Parameters.Add(new SqlParameter("@heading",SqlDbType.VarChar,100));
myCmd.Parameters["@heading"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text;
myCmd.Parameters.Add(new SqlParameter("@author",SqlDbType.VarChar,20));
myCmd.Parameters["@author"].Value=((TextBox)e.Item.Cells[3].Controls[0]).Text;
myCmd.Parameters.Add(new SqlParameter("@source",SqlDbType.VarChar,100));
myCmd.Parameters["@source"].Value=((TextBox)e.Item.Cells[4].Controls[0]).Text;
myCmd.Parameters.Add(new SqlParameter("@addtime",SqlDbType.DateTime));
myCmd.Parameters["@addtime"].Value=((TextBox)e.Item.Cells[5].Controls[0]).Text;
myCmd.Parameters.Add(new SqlParameter("@hits",SqlDbType.Int,4));
myCmd.Parameters["@hits"].Value=((TextBox)e.Item.Cells[6].Controls[0]).Text;
myConn.Open();
myCmd.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
myConn.Close();
BindGrid();

}
总是提示:
Input string was not in a correct format.
我也不知道是那个地方错了。。。
比尔咔咔 2003-09-29
  • 打赏
  • 举报
回复
更据模板列得类型不同
((TextBox)e.Item.Cells[3].Controls[这是模板列控件索引]).Text
??????这要改得
比尔咔咔 2003-09-29
  • 打赏
  • 举报
回复
当然了取时有区别
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
((TextBox)e.Item.Cells[3].Controls[这是模板列控件索引]).Text
}
seesea125 2003-09-29
  • 打赏
  • 举报
回复
public void doitemedit(object objsource,DataGridCommandEventArgs objargs)
{
//单击datagrid的编译按钮响应过程
DataGrid1.EditItemIndex = objargs.Item.ItemIndex;
myclass.binddatagrid("select * from telrecord","id desc",5,DataGrid1);
}
public void doitemcancel(object objsource, DataGridCommandEventArgs objargs)
{
//单击datagrid的取消按钮响应过程
DataGrid1.EditItemIndex = -1;
myclass.binddatagrid("select * from telrecord","id desc",5,DataGrid1);
}
public void del(object objsource, EventArgs objargs)
{
//点击删除按钮后删除记录,并及时刷新页面
Button bt=(Button)objsource;
TableCell tc=(TableCell)bt.Parent;
DataGridItem item=(DataGridItem)tc.Parent;
string id=item.Cells[0].Text;
string sql="delete from telrecord where id="+Convert.ToInt32(id);;
int rows=myclass.ExecuteNonQuery(sql);
//如果用下句就是删除后刷新页面,如果用response,则刷新后又跳到第一页
myclass.binddatagrid("select * from telrecord","id desc",5,DataGrid1);
//Response.Redirect("insert.aspx",true);
}
dongqgc 2003-09-29
  • 打赏
  • 举报
回复
兄弟,我的Web.Config文件里有说的这些呀?
现在该怎么办?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧