gridview IE 9 + .net 3.5中的Ajax错误

时间:2011-05-26 11:48:32

标签: asp.net ajax internet-explorer-9

我最近更新到IE 9,我遇到了一些奇怪的问题。 我在updatepanel中有一个带有Gridview的页面,grid有一个用于编辑/删除记录的命令域。命令字段使用图像作为按钮类型。当我点击按钮时,我收到一条Javascript错误说:

Error: Sys.ParameterCountException: Parameter count mismatch.         

只有在使用以下组合(.NET 3.5 + IE 9 +图像类型按钮)时才会出现此错误。如果我使用的是.NET 4.0或IE 8或链接/按钮类型按钮,我没有收到相同的错误。

<asp:CommandField ButtonType="Image" CancelImageUrl="~/Images/undo.jpg" 
     DeleteImageUrl="~/Images/delete.jpg" EditImageUrl="~/Images/edit_1.jpg" 
     InsertVisible="False" ShowDeleteButton="True" ShowEditButton="True" 
     UpdateImageUrl="~/Images/accept.jpg">
</asp:CommandField>

你知道我怎么能避免这个?

谢谢!

3 个答案:

答案 0 :(得分:4)

您好我找到了解决方案。我在ScriptManager中设置了ScriptMode =“Release”。默认值为“自动”。它解决了我的问题。您也可以使用auto,但必须设置    当零售设置为true时,ASP.NET会禁用某些配置设置,例如跟踪输出,自定义错误和调试功能。只需设置retail = true即可使用ScriptMode = Auto。

答案 1 :(得分:1)

我也遇到过这个问题。我使用的是.NET 3.5 + IE 9 +图像类型按钮。删除updatepanel

后,错误消失了

答案 2 :(得分:1)

如果您想保留updatepanel,可以使用TemplateField而不是ButtonField或CommandField。

<asp:TemplateField HeaderText="Contacts">
 <ItemTemplate>
     <asp:ImageButton ImageUrl="../../images/icons/contacts.png" CommandArgument="<%# CType(Container, GridViewRow).RowIndex %>" CommandName="yourCommand" runat="server" />
 </ItemTemplate>
</asp:TemplateField>


Dim row As GridViewRow = uxgvServiceUsers.Rows(Convert.ToInt32(e.CommandArgument))

If e.CommandName.Trim.Equals("yourCommand") Then
                Response.Redirect("./Page.aspx")