我在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>
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
。
我不明白最新情况。
答案 0 :(得分: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中正确获取命令名...
答案 1 :(得分:0)
抱歉,我没有看到您有身份证件。
我认为你正在使用IE 10.
.NET 2.0和.NET 4附带的浏览器定义文件中存在一个错误,即它们包含某些浏览器版本的定义。但某些浏览器(如IE 10)的版本不再在这些范围内。因此,ASP.NET将它们视为未知浏览器,默认为低级定义,这有一些不便之处,例如它不支持JavaScript等功能。
只需安装.NET Framework 4.5即可解决此问题。
即使您不将应用程序池切换到.NET Framework 4.5,也可以解决此问题。
答案 2 :(得分:0)
请检查您的Page_Load方法并确保在IsPostback检查中绑定网格:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack) // Don't forget this
{
grdLoan.DataSource = ...;
grdLoan.DataBind();
}
}