首页 新闻 会员 周边 捐助

GridView 中HyperLinkField传值问题

0
悬赏园豆:15 [已解决问题] 解决于 2012-05-24 10:46

例如:

<asp:HyperLinkFiled DataNavigateUrlFormatString="../a.aspx?id={0}&name={1}"

DataNavigateFields="ID,NAME" test="详 细"/>

这样是可以的,如果加个时间字段

如:

<asp:HyperLinkFiled DataNavigateUrlFormatString="../a.aspx?id={0}&name={1}&time={2}" DataNavigateFields="ID,NAME,SysTime" test="详 细"/>

“详细这一列就不能点击跳转了”

请问各位帮帮忙,什么愿意呢

_劍客的主页 _劍客 | 初学一级 | 园豆:94
提问于:2012-05-23 16:34
< >
分享
最佳答案
0

应该是像“荒野的呼唤”说的id={0}&name={1}&time={2}" 大括号里面改成0,1,2 这样吧。

收获园豆:5
icyme | 初学一级 |园豆:77 | 2012-05-23 21:09

程序里面是0,1,2,3,45.

我这里手写的,手误,问题不在这里,如果把时间字段去掉完全可以的

_劍客 | 园豆:94 (初学一级) | 2012-05-23 22:23

@_劍客: 那你那个时间字段time是绑定的时间类型么?

icyme | 园豆:77 (初学一级) | 2012-05-23 22:24

@Technology: 当然是时间,“2012-5-1 12:12:12”

_劍客 | 园豆:94 (初学一级) | 2012-05-24 09:13

@_劍客: 我试了一下,确实如你所说。估计应该是 HyperLinkField 的 DataNavigateUrlFields 只适用于绑定String类型的参数吧。  给你提供一个建议。  你这个GridView如果绑定的数据源 是 通过 实体的话,那么你可以在那个实体里面添加一个String类型的Time属性,作用就是将真正的时间ToString一下,然后赋值给这个属性,你GridView绑定时间就绑定实体的这个String类型属性就可以了。然后传值时,也传递这个String的时间属性。应该就没什么问题了。你可以试一下。

icyme | 园豆:77 (初学一级) | 2012-05-24 09:57

@Technology: 这样不行的,我还是用yyyy-MM-dd HH,dd,ss,接收页面做转换

_劍客 | 园豆:94 (初学一级) | 2012-05-24 10:43
其他回答(3)
0

有time这个列?

你确定time列是在第四列?

wvsy | 园豆:297 (菜鸟二级) | 2012-05-23 16:52
0

id={0}&name={2}&time={3}" 大括号里面改成0,1,2

悟行 | 园豆:12559 (专家六级) | 2012-05-23 17:12

程序里面是0,1,2,3,45.

我这里手写的,手误,问题不在这里,如果把时间字段去掉完全可以的

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2012-05-23 22:22
0

分析下你的输出HTML。

收获园豆:10
无之无 | 园豆:5095 (大侠五级) | 2012-05-23 17:23

程序里面是0,1,2,3,45.

我这里手写的,手误,问题不在这里,如果把时间字段去掉完全可以的

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2012-05-23 22:23

@Technology: 

没有可以分析的,如果不能跳转,页面上不会生成URL就是个空值

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2012-05-24 09:14

@_劍客: SysTime列是正确的吗?

假如是正确的,你把Format写成:

<asp:HyperLinkFiled DataNavigateUrlFormatString="../a.aspx?id={0}&name={1}&time={2:yyyyMMddHHmmss}" DataNavigateFields="ID,NAME,SysTime" test="详 细"/>

看下这样的效果。

这里,我对你的Time的值进行了格式化,输出的内容有点变化。我怀疑你之前的写法输出的内容是带有“:”的,这样导致了异常。

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-05-24 09:27

@笨笨蜗牛: 确实时间带“:”,我直接拿出来放URL里面页面可以加载

我试下先

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2012-05-24 09:34

@笨笨蜗牛: 

转换无效啊,试过了

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2012-05-24 09:38

@_劍客: 晓得了,是时间转换问题,传到下一个页面需要还原时间处理下就好了

我再找找有没有别的表达式方便还原转换的

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2012-05-24 09:47

@_劍客: 时间转换很简单,按照DATETIME的标准输出得到的字符串都可以通过DATETIME的PARSE方法解析,此外,也可以通过DATETIME的构造函数来实现,只要你能把输出后的字符串还原。

一个简单的方案:假如你对日期时间没有可读性的需求,可以直接转换为TICKS。

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-05-24 09:54

@笨笨蜗牛: 前台代码time={2:yyyyMMddHHmmss}这里怎么转换啊、这样的格式到下一个页面解析不方便

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2012-05-24 10:00

@Technology: 自己截取数据内容,分解成 “yyyy-MM-dd HH:mm:ss”格式,或者分别提取出yyyy MM dd HH mm ss等值,使用构造函数处理。

另外一个方案(我没实验过),看是否能在format里让datetime输出ticks。

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-05-24 10:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册