日期:2014-05-17  浏览次数:20487 次

在gridview上 一天撞两次鬼,请钟馗帮我抓鬼
功能描述:本人觉得微软的gridview的增删改查功能不太好看,于是自己实现了gridview的增删改查,并且让选中行变色功能。先看一下正常的情况:
自己实现增删改功能有一个比较麻烦的问题就是传值的问题,比如说我要获得选中行的业务数据。还好有大神给出了解决方案
拿来用吧。
在服务器端给每一行添加单击事件触发一个前台脚本函数,并传入该行的数据,然后就可以再前端获得该行的业务数据了。

效果是这样的:

按道理这么简单的功能应该没有什么问题,但是当我在任务代号里输入字母,然后传到前台时见鬼了。前台的单击事件没反应

难道gridview的datakeys字段一定要是整数吗? 
我把这一样注掉也不行:this.taskView.DataKeyNames = new string[] { "taskid" };
谁能跟我详细说一下DataKeyNames,一定要指定一个数字型的字段么?你不让我用那我就不用了。不用还不行么。
我用System.DateTime.Now.Ticks生成一串数字,
这次又见鬼了
我的第一反应是溢出,可是我传的是字符串啊,跟溢出有半毛钱关系么?
从数据库里面取出来的数传到前台怎么就变了呢?又不是当时生成的,如果是当时生成的,电脑反应慢有个几毫秒的时差还说得过去,但是我这数是从数据库里取出来的?彻底崩溃了!!!有没有道行高的高手帮我抓出这两只小鬼啊?拜托了!!!
(在别的电脑上跑也有同样的问题)

------解决方案--------------------
这是JS接收数据的问题。

改成String(datakey) 或在传入是 加 ''
------解决方案--------------------
这很明白的。 跟一个方法传参一样 要确定类型 难道你一个 function aa(int i,string b)
你想象一下 GridViewRowClick(abcdss) JS怎么编译它。 他会说哦 我不认识他。 你加了'' 他就会说 哦这是个字符串var
而数字JS会是默认的 他会说 哦 这就是数字。