【问题标题】:asp.net gridview selectbutton does not postback for some clients某些客户端的 asp.net gridview selectbutton 不回发
【发布时间】:2012-06-21 16:05:39
【问题描述】:

我们有一个使用 VB.Net 的 ASP.net 3.5 WebForms 应用程序,它已经运行了很多年。在此应用程序中,有一个不会回发某些客户端的 gridview 选择按钮。当我们将 Web 应用程序从 Windows Server 2003 移至 Windows Server 2008R2 上的 IIS 7 时,我们的一些客户端开始出现此问题。

选择按钮在gridview中定义为asp:CommandField ShowSelectButton="True" 它生成如下代码(从 HTML 源代码复制):

a href="javascript:__doPostBack('ctl00$bodyContentPlaceHolder$GridView1','Select$0')" style="color:#333333;">Select</a>  

对于一些使用IE(各种版本)的Win XP、Win 7用户,当用户点击生成的按钮时不会回发。已检查所有用户以确保启用了 javascript。对于其他使用IE等浏览器的Win XP、Win 7用户来说,效果很好。 很多谷歌搜索已经找到了关于 Javascript 回发问题的信息,但似乎没有什么合适的。

其他信息:在 GridView Rowdatabound 事件中使用此代码为回发启用了整个 gridview 行:

e.Row.Attributes.Add("onClick", "javascript:__doPostBack('" + Replace(GridView1.ClientID, "_", "$") + "','Select$" + e.Row.RowIndex.ToString + "')")  

生成此 HTML:

<tr align="center" valign="top" onClick="javascript:__doPostBack('ctl00$bodyContentPlaceHolder$GridView1','Select$0')" 

请注意,Javascript 的读取方式与不工作的 javascript 相同,除了单击行中的其他位置对所有用户都有效。这让我想到了三个可能的问题:

  1. 链接标签中的 SELECT 按钮是否会导致某些用户无法使用?
  2. 是否存在可能不同的用户设置?
  3. 是 Internet 提供商阻止的吗?

【问题讨论】:

  • 你能编辑一下,以便我们阅读吗?使用代码块和段落可以为我们提供帮助。
  • 哪个版本的IE?不同的版本会带来不同的问题。从上面的项目符号列表中,所有代码都是从客户端浏览器运行的,因此 pt 1 将是浏览器问题(如果之前选择工作),pt 2(没有 IE 设置将阻止回发,除非他们关闭 javascript,pt3(不可能一个 isp 阻止任何东西)。所以它可能是浏览器的 javascript 设置关闭或它的 IE6/7/8 或 9 问题(但我们需要知道哪些浏览器)。

标签: asp.net gridview postback


【解决方案1】:

1.链接标签中的 SELECT 按钮是否会导致某些用户无法使用?

这似乎不太可能,因为页面应该以相同的方式呈现给所有用户(除非您正在执行您没有披露的客户端检测)。

2.是否存在可能不同的用户设置?

也许吧。我会寻找的东西包括:

  1. 检查兼容性视图设置以找到不同的设置(在开发过程中也可以尝试)。
  2. 检查用户是否有可能干扰的加载项(运行iexplore.exe -extoff 以在没有加载项的情况下运行 IE)
  3. 强制 IE 忽略缓存页面(我发现使用 IE7 及更高版本执行此操作的最简单方法是按 F12 进入开发人员栏,然后在缓存菜单上选择“始终从服务器刷新”)。

3. 是否是 Internet 提供商阻止的内容?

我非常怀疑这一点。

【讨论】:

  • 很抱歉不知道如何正确格式化,将研究它,感谢做过的人。它在 IE8/XP、IE9/Win7 中运行良好,等待用户听到他们使用的版本(一个用户有两台计算机,在 Win7 上运行,而不是在 XP 上运行)。还将让他们关闭/打开兼容性视图作为测试。到目前为止谢谢
  • 用户使用的是 WinXP/IE8。在那种环境(不同的计算机)中,我们既有失败也有成功。兼容性设置没有区别。 @Rob 在所有情况下都启用了 javascript 设置(asp.net webforms 需要它)。将尽可能进行缓存和附加测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 2012-12-24
  • 2016-10-05
  • 2011-03-10
  • 2011-07-19
  • 1970-01-01
相关资源
最近更新 更多