我们有一个使用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的读取方式相同,但不能正常工作,除非单击行中的其他位置,所有用户都可以使用。这让我想到了三个可能的问题:
答案 0 :(得分:0)
1.是否有一些关于SELECT按钮在链接标签中的某些内容使某些用户失败?
似乎不太可能,因为页面应该以相同的方式呈现给所有用户(除非您正在进行未公开的客户端检测)。
2.用户设置可能有所不同吗?
也许。我想找的东西包括:
iexplore.exe -extoff
以运行没有加载项的IE)3.是互联网服务提供商阻止的吗?
我非常怀疑这一点。