0

我们有一个使用 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. 互联网提供商是否阻止了它?
4

1 回答 1

0

1. SELECT 按钮在链接标签中是否有某些问题导致某些用户无法使用?

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

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

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

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

3. 是不是互联网供应商屏蔽的东西?

我非常怀疑这一点。

于 2012-06-21T20:24:03.863 回答