请教:关于EditCommandColumn的两问
1.对某条记录的更新我的做法是:先将每个cell的值保存,然后把这条记录删除,然后再增加一行,把值填上.但是这样的话,更改过的记录就不在原来的位置上了,变成在最后了,请问有没有办法在原来删除的位置增加行.(update代码如下)
2.我只想改其中的1项,可是当我按更新时就全变成textbox了,有没有办法只在我想要的项变成textbox呢?
谢谢!
//代码如下:
private void dg1_updatecommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e)
{
textbox pricetext=(textbox)e.item.cells[4].controls[0]; //我只想改这项,其它不改
string num=((textbox)e.item.cells[0].controls[0]).text; //此项不改,只想把这个单元的值取出,但一按"更新"它就变成textbox的样子,所以不得不转化为textbox
string address=((textbox)e.item.cells[1].controls[0]).text;
string phone=((textbox)e.item.cells[2].controls[0]).text;
string email=((textbox)e.item.cells[3].controls[0]).text;
double price=convert.todouble(pricetext.text);
string url=((textbox)e.item.cells[5].controls[0]).text;
dv=new dataview(dt);
dv.rowfilter="账号="+num+"";
if (dv.count>0)
dv.delete(0);
dv.rowfilter="";
datarow dr=ds.tables["info"].newrow();;
dr[0]=num;
dr[1]=address;
dr[2]=phone;
dr[3]=email; dr[4]=price; dr[5]=url;
dt.rows.add(dr);
dg1.edititemindex=-1;
gridbind();
}
推荐阅读
datarow dr=ds.tables["info"].rows[dg1.edititemindex];
dr[0]=num;
dr[1]=address;
dr[2]=phone;
dr[3]=email; dr[4]=price; dr[5]=url;
//dont update the primary key
dataadapter.update(ds.tables["info"]);
ds.tables["info"].acceptchanges();
dg1.edititemindex=-1;
gridbind();


讨论区