我双击datagrid中某一行,弹出一个更新被点击这一行的更新信息页面,现在的问题是如果我工资表中的某一个编号有二个以上(发工资的时间不同)那么当我双击相同编号的任何一行,那么弹出来的框框中取出的值始终是这个相同号码的第一个,取其它的值都正常,更新也更新得起。有什么办法可以解决啊?比如我查询出来的行数有:(该表有二个主键,一是编号,二是时间。)
编号 工资 工资 时间
2001001 20元 20元 2001-1-1
2001002 20元 20元 2001-1-1
2001002 30元 30元 2001-9-9
2001002 20 1 2001-5-5
2001003 20 41 2001-7-7
如果我双击2001001 与 2001003 取出的值就是正常的,也可以更新
如果我双击2001002,不管是上面三条中那一条,取出的值都是2001002 20元 20元 2001-1-1
并且更新也更新不了?有什么办法呢?? //循环对表格行做脚本,点击弹出新窗口
int i=0;
int mycount = DataGrid1.Items.Count;
string ygid = "";
for(i=0;i<mycount;i++)
{
ygid = DataGrid1.DataKeys[i].ToString();
DataGrid1.Items[i].Attributes.Add("ondblclick","window.open('updatawage.aspx?ygid=" + ygid + "','','');");//双击响应
编号 工资 工资 时间
2001001 20元 20元 2001-1-1
2001002 20元 20元 2001-1-1
2001002 30元 30元 2001-9-9
2001002 20 1 2001-5-5
2001003 20 41 2001-7-7
如果我双击2001001 与 2001003 取出的值就是正常的,也可以更新
如果我双击2001002,不管是上面三条中那一条,取出的值都是2001002 20元 20元 2001-1-1
并且更新也更新不了?有什么办法呢?? //循环对表格行做脚本,点击弹出新窗口
int i=0;
int mycount = DataGrid1.Items.Count;
string ygid = "";
for(i=0;i<mycount;i++)
{
ygid = DataGrid1.DataKeys[i].ToString();
DataGrid1.Items[i].Attributes.Add("ondblclick","window.open('updatawage.aspx?ygid=" + ygid + "','','');");//双击响应
然后判断某条记录被双击的时候,不要用“编号”,用那个隐藏的列的值。就是说把DataKeys设成那个隐藏的列。
string mydate = "";
for(i=0;i<mycount;i++)
{
ygid = DataGrid1.DataKeys[i].ToString();
mydate = DataGrid1.Items[i].Cells[n].Text;
DataGrid1.Items[i].Attributes.Add("ondblclick","window.open('updatawage.aspx?ygid=" + ygid + "&mydate=" + mydate + "','','');");//双击响应