【问题标题】:Gridview Image Button RowCommand not working in IE?Gridview 图像按钮 RowCommand 在 IE 中不起作用?
【发布时间】:2014-04-03 07:38:35
【问题描述】:

我在 gridview 项目模板中有图像按钮。在 RowCommand 事件中单击该图像时,CommandName 显示的结果与我的预期不同。它总是说“选择”,但我期待“pdf”。

这只发生在 IE 中。不是 Chrome。

 <asp:GridView ID="grdLoan" Width="100%" runat="server" CssClass="grid" HeaderStyle-CssClass="gridHeader"
                PageSize="25" AutoGenerateColumns="false" RowStyle-CssClass="gridItem" AlternatingRowStyle-CssClass="gridAltItem"
                AllowPaging="false" BackColor="LightGray">
                <SelectedRowStyle CssClass="SelectedRowStyle" />
                <Columns>
                    <asp:BoundField HeaderText="Loan Number" DataField="strAltLoanNumber">
                        <ItemStyle Wrap="False" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="Security" DataField="strGlobalSecurity">
                        <ItemStyle Wrap="False" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="Sample #" DataField="intSampleID"></asp:BoundField>
                    <asp:TemplateField HeaderText="PDF">
                        <ItemTemplate>
                            <asp:ImageButton CommandName="pdf" ID="imgPDF" ImageUrl="~/Images/pdf.png" runat="server"
                                CommandArgument='<%#Eval("strGlobalLoanNumber")%>' />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
  </asp:GridView>

Gridview 事件

Private Sub grdLoan_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles grdLoan.RowCreated

    If e.Row.RowType = DataControlRowType.DataRow Then
        e.Row.Attributes("onmouseover") = "this.style.cursor='pointer';"
        e.Row.Attributes("onmouseout") = "this.style.textDecoration='none';"
        e.Row.ToolTip = "Click to select row"
        e.Row.Attributes("onclick") = Me.Page.ClientScript.GetPostBackClientHyperlink(Me.grdLoan, "Select$" & e.Row.RowIndex)
    End If
End Sub  

  Private Sub grdLoan_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles grdLoan.RowCommand
        If e.CommandName = "pdf" Then
        end if
End sub

我也试过了

<asp:ImageButton CommandName="pdf" ID="imgPDF" ImageUrl="~/Images/pdf.png"
 runat="server" CommandArgument='<%#Eval("strNumber")%>' OnClick="imgPDF_Click" />

Onclick 事件永远不会触发,Chrome 会正常工作。

也试过了

<asp:CommandField ShowEditButton ...>

第一次RowCommand 发射两次。一次是Edit,另一个是select。如果我第二次点击它是Select

我不明白发生了什么。

【问题讨论】:

  • 你试过我关于“Page_Load”的回答了吗?

标签: c# asp.net vb.net gridview


【解决方案1】:

我检查了你的代码,但它在这里工作我使用的是 IE 8 并且它在其中工作。

我改变了什么:

<asp:GridView ID="grdLoan" Width="100%" runat="server" CssClass="grid" HeaderStyle-   CssClass="gridHeader" PageSize="25" AutoGenerateColumns="false"
 RowStyle-CssClass="gridItem" **onRowCommand = "grdLoan_RowCommand"** AlternatingRowStyle- CssClass="gridAltItem" AllowPaging="false" BackColor="LightGray">

在代码页中

protected void grdLoan_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.ToLower() == "pdf")
        {
        }
    }

我在 IE 8 中正确获取命令名...

【讨论】:

  • 他使用Handles grdLoan.RowCreated 而不是属性声明
【解决方案2】:

抱歉,我没有看到您有 ID。

我认为您使用的是 IE 10。

.NET 2.0 和 .NET 4 附带的浏览器定义文件中存在一个错误,即它们包含特定范围浏览器版本的定义。但是某些浏览器(如 IE 10)的版本不再在这些范围内。因此,ASP.NET 将它们视为未知浏览器,并默认为下层定义,这有一定的不便,比如它不支持 JavaScript 之类的功能。

只需安装 .NET Framework 4.5 即可解决此问题。

即使您不将应用程序池切换到 .NET Framework 4.5,这也可以解决问题。

相关:ImageButton does not fire a post back on IE10

【讨论】:

  • 能否请您显示 GridView 的第一行?
  • 你错过了OnRowCreated="grdLoan_RowCreated" OnRowCommand="grdLoan_RowCommand"
  • err:'grdLoan_RowCommand' 不是 'ASP.home_aspx' 的成员。我认为不需要,因为我正在使用Handles grdLoan.RowCreated 处理后面的代码
【解决方案3】:

请检查您的 Page_Load 方法并确保在 IsPostback 检查中绑定您的网格:

protected void Page_Load(object sender, EventArgs e)
{
    if(!Page.IsPostBack) // Don't forget this
    {
        grdLoan.DataSource = ...;
        grdLoan.DataBind();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 2014-09-06
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多