例如:
<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="详 细"/>
“详细这一列就不能点击跳转了”
请问各位帮帮忙,什么愿意呢
应该是像“荒野的呼唤”说的id={0}&name={1}&time={2}" 大括号里面改成0,1,2 这样吧。
程序里面是0,1,2,3,45.
我这里手写的,手误,问题不在这里,如果把时间字段去掉完全可以的
@_劍客: 那你那个时间字段time是绑定的时间类型么?
@Technology: 当然是时间,“2012-5-1 12:12:12”
@_劍客: 我试了一下,确实如你所说。估计应该是 HyperLinkField 的 DataNavigateUrlFields 只适用于绑定String类型的参数吧。 给你提供一个建议。 你这个GridView如果绑定的数据源 是 通过 实体的话,那么你可以在那个实体里面添加一个String类型的Time属性,作用就是将真正的时间ToString一下,然后赋值给这个属性,你GridView绑定时间就绑定实体的这个String类型属性就可以了。然后传值时,也传递这个String的时间属性。应该就没什么问题了。你可以试一下。
@Technology: 这样不行的,我还是用yyyy-MM-dd HH,dd,ss,接收页面做转换
有time这个列?
你确定time列是在第四列?
id={0}&name={2}&time={3}" 大括号里面改成0,1,2
程序里面是0,1,2,3,45.
我这里手写的,手误,问题不在这里,如果把时间字段去掉完全可以的
分析下你的输出HTML。
程序里面是0,1,2,3,45.
我这里手写的,手误,问题不在这里,如果把时间字段去掉完全可以的
@Technology:
没有可以分析的,如果不能跳转,页面上不会生成URL就是个空值
@_劍客: SysTime列是正确的吗?
假如是正确的,你把Format写成:
<asp:HyperLinkFiled DataNavigateUrlFormatString="../a.aspx?id={0}&name={1}&time={2:yyyyMMddHHmmss}" DataNavigateFields="ID,NAME,SysTime" test="详 细"/>
看下这样的效果。
这里,我对你的Time的值进行了格式化,输出的内容有点变化。我怀疑你之前的写法输出的内容是带有“:”的,这样导致了异常。
@笨笨蜗牛: 确实时间带“:”,我直接拿出来放URL里面页面可以加载
我试下先
@笨笨蜗牛:
转换无效啊,试过了
@_劍客: 晓得了,是时间转换问题,传到下一个页面需要还原时间处理下就好了
我再找找有没有别的表达式方便还原转换的
@_劍客: 时间转换很简单,按照DATETIME的标准输出得到的字符串都可以通过DATETIME的PARSE方法解析,此外,也可以通过DATETIME的构造函数来实现,只要你能把输出后的字符串还原。
一个简单的方案:假如你对日期时间没有可读性的需求,可以直接转换为TICKS。
@笨笨蜗牛: 前台代码time={2:yyyyMMddHHmmss}这里怎么转换啊、这样的格式到下一个页面解析不方便
@Technology: 自己截取数据内容,分解成 “yyyy-MM-dd HH:mm:ss”格式,或者分别提取出yyyy MM dd HH mm ss等值,使用构造函数处理。
另外一个方案(我没实验过),看是否能在format里让datetime输出ticks。