asp.net gridview selectbutton不回发某些客户端

时间:2012-06-21 16:05:40

标签: asp.net gridview postback

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

选择按钮在网格视图中使用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. 是互联网服务提供商阻止的吗?

1 个答案:

答案 0 :(得分:0)

  

1.是否有一些关于SELECT按钮在链接标签中的某些内容使某些用户失败?

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

  

2.用户设置可能有所不同吗?

也许。我想找的东西包括:

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

    3.是互联网服务提供商阻止的吗?

    我非常怀疑这一点。