FineUI 官方论坛

标题: v3.1.8中Grid行中超链接问题! [打印本页]

作者: ︶ㄣ東東ㄣ    时间: 2012-6-25 16:25
标题: v3.1.8中Grid行中超链接问题!
本帖最后由 ︶ㄣ東東ㄣ 于 2012-6-25 17:19 编辑

<ext:TemplateField HeaderText="模板列" Width="60px">
                <ItemTemplate>
                    <a href="<%# GetEditUrl(Eval("Id"), Eval("Name")) %>">编辑</a>
                </ItemTemplate>
            </ext:TemplateField>

protected string GetEditUrl(object id, object name)
        {
            return "javascript:" + Window1.GetShowReference("grid_iframe_window.aspx?id=" + id, "编辑 - " + name);
        }

更新3.1.8后,没有反应,哪位知道是怎么回事?

作者: 天蓝若空    时间: 2012-6-26 02:29
在后边加上.Replace("\"","\'") ,看了下页面的代码,发现 title里的引号错误,3.18是双引号,所以出错了
作者: support    时间: 2012-6-26 03:02
天蓝若空 发表于 2012-6-26 02:29
在后边加上.Replace("\"","\'") ,看了下页面的代码,发现 title里的引号错误,3.18是双引号,所以出错了 ...

和版本没关系吧,由于你生成的js代码是要放到href属性中,属性是双引号括起来的,所以要保证生成的js中不包含双引号
作者: 天蓝若空    时间: 2012-6-26 03:17
support 发表于 2012-6-26 03:02
和版本没关系吧,由于你生成的js代码是要放到href属性中,属性是双引号括起来的,所以要保证生成的js中不 ...

在3.17里边后台代码可以直接写 return "javascript:" + Window1.GetShowReference("grid_iframe_window.aspx?id=" + id, "编辑 - " + name); 但是3.18里边这样写报错的,我看了下页面的代码,发现生成后的 title是用双引号括起来的,也就是 href=“javascript:X('ctl00_ContentPlaceHolder1_winAdd').box_show('/webui/smallClasses/teachers/confirm.aspx?piaoId=3068&stu=2291',"编辑")”
作者: 李剑飞    时间: 2012-6-26 05:19
以前的版本都是正常的,就这个3.18开始就有这个错误了,是GetShowReference翻译的js和以前不一样了,所以现在官网grid_iframe.aspx这个事例也产生了同样的错误了
作者: sanshi    时间: 2012-6-26 05:49
李剑飞 发表于 2012-6-26 05:19
以前的版本都是正常的,就这个3.18开始就有这个错误了,是GetShowReference翻译的js和以前不一样了,所以现 ...

oooooo, 应该是ExtAspNet的BUG,多谢各位了。
作者: 李剑飞    时间: 2012-6-26 06:26
再问三石大哥关于一个其他问题,就是关于Grid_Main.Rows[Index].Values[POS]属性,以前的版本时Grid_Main.Rows[Index].Values[POS]可以获取Grid_Main的第Index行POS列的具体数据,现在不行了,获取到的是渲染后的HTML片段(如:<span>abc</span>),想要获取就只能用Grid_Main.Rows[Index].DataKeys属性,请问大哥,是否现在只能用这种方法了,对于未设置datakeys属性的Grid控件,还有什么其他获取?
作者: 李剑飞    时间: 2012-6-26 06:29
所以现在官网的grid_dynamic_columns.aspx这个例子好像也出了这种问题了
作者: sanshi    时间: 2012-6-26 07:20
李剑飞 发表于 2012-6-26 06:26
再问三石大哥关于一个其他问题,就是关于Grid_Main.Rows.Values属性,以前的版本时Grid_Main.Rows.Values可 ...

Grid_Main.Rows[Index].Values[POS] 获得的本来就是渲染之后的html,只不过之前的BoundField在没有设置Tooltip时不会生成span标签,现在都会生成了。

推荐的做法还是用DataKeys,这也是Asp.Net的GridView的推荐做法。当然在RowDataBound事件中可以获得数据源(表格行,或者类实例)
作者: 李剑飞    时间: 2012-6-26 07:39
好吧。那看来也只能用DataKeys属性了,谢谢三石大哥!
作者: sanshi    时间: 2012-6-26 15:19
这个问题已修正:79575

+修正Window的GetShowReference返回的字符串中包含双引号的问题(︶ㄣ東東ㄣ、天蓝若空、李剑飞、克儿~)。
                -虽然返回的JavaScript语句没问题,但是如果放到HTML属性中就有问题了。
                -修正HtmlNodeBuilder在处理双引号等字符时可能导致潜在JavaScript问题。
                -从根本上解决WindowField、LinkButton、HyperLink等控件的客户端脚本中存在单引号或者双引号时出现的各种问题。

我马上会上传一个 v3.1.8.2 的 dll 到 http://extaspnet.codeplex.com/,有需要的同学自己去拿了....






欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4