datagrid的update问题
今天刚刚学习datagrid.发现在更新的时候总是出殃索引超出范围异常呢,我用的代码是
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
(int)DataGrid1.DataKeys[e.Item.ItemIndex]。
更新的时候取得textbox中的值应该怎么取啊。
谢谢
问题点数:20、回复次数:5Top
1 楼jxufewbt(我的目标是5星)回复于 2005-11-10 14:26:02 得分 8
参照下面的代码:
private void dgdBranch_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(this.EmpRightCode >= 3)
{
int index = e.Item.ItemIndex;
int braID = Convert.ToInt16(dgdBranch.DataKeys[index].ToString(),10);
string s1 = ((TextBox)e.Item.Cells[0].Controls[0]).Text;
string s2 = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
if(!ValidateUtil.isBlank(s1))
{
bool result = (new DepSystem()).UpdateMrBranch(braID,s1,s2);
this.WriteOptLog("修改机构"+s1+"信息");
dgdBranch.EditItemIndex = -1;
dgdBranch.DataBind();
}
else
JScript.Alert ("机构名称不能为空!");
}
else
JScript.Alert("您没有权限进行此操作!");
}Top
2 楼hchxxzx(NET?摸到一点门槛)回复于 2005-11-10 14:36:18 得分 8
你使用这一句
(int)DataGrid1.DataKeys[e.Item.ItemIndex]。
请问你在绑定的时候,有没有设置该控件的DataKeyField字段呢?如果没有,你是取不到值的.
另外,到更新行的文本框值代码如下:
TextBox mytext = (TextBox)thsi.DataGrid1.Items[e.Item.ItemIndex].FindControl("控件ID");Top
3 楼xiaochongvip(暗恋是很伤身体的)回复于 2005-11-10 14:37:49 得分 0
能取到值了,不过dgdBranch.DataKeys[index].ToString()还是显示错误
引超出范围。必须为非负值并小于集合大小。参数名: index
是不是要在aspx页面的datagrid1里面加什么内容啊
还有啊,DataKeys()是干啥用的啊,我看也用不到它吗,直接用string s1 = ((TextBox)e.Item.Cells[0].Controls[0]).Text;
取到值就行了嘛,不过看好多代码中都有它的,解释下啊Top
4 楼xiaochongvip(暗恋是很伤身体的)回复于 2005-11-10 14:42:26 得分 0
Cells[0].Controls[0]是指什么啊,还有JScript.Alert()我的怎么不能执行?Top
5 楼engine198473(我喜欢偷偷的看她偷偷的看我)回复于 2005-11-10 15:16:40 得分 4
(int)DataGrid1.DataKeys[e.Item.ItemIndex]
首先确保你设置了DataKeyField字段,该字段对应数据库中的字段.Top




