Hi there,
The OnItemCommand, OnSortCommand got triggered unexpectly when pressing enter key in a textbox. Here is my scenario:
1 Click in a textbox below a RadGrid.
2 Press Enter key, OnItemCommand, OnSortCommand wil be triggered.
However, as soon as I remove the HeaderImageUrl property in telerik:GridTemplateColumn, everything works perfectly.
Please see the demo code below:
TestEnterKey.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestEnterKey.aspx.cs" Inherits="TestEnterKey" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div style="margin-bottom:20px;"> <asp:scriptmanager id="ScriptManager1" runat="server"> </asp:scriptmanager> <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" CellSpacing="0" AllowSorting="True" OnItemCommand="grid_RowCommand" OnSortCommand="grid_SortCommand" GridLines="None" Width="800px" AllowFilteringByColumn="true" EnableLinqExpressions="false" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource" ShowFooter="True"> <MasterTableView AutoGenerateColumns="false" EditMode="InPlace" AllowFilteringByColumn="true" ShowFooter="True" TableLayout="Auto"> <Columns> <telerik:GridTemplateColumn DataField="Freight" HeaderText="Freight" SortExpression="Freight" HeaderImageUrl="~/images/datePickerPopup.png" AutoPostBackOnFilter="true" CurrentFilterFunction="GreaterThanOrEqualTo" ShowFilterIcon="false"> <ItemTemplate> <asp:LinkButton ID="lbl_freight" runat="server" Text='<%#Eval("Freight")%>' Visible="true"/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="ShipName" HeaderText="Ship Name" SortExpression="ShipName" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false"> <ItemTemplate> <asp:LinkButton ID="lbl_name" runat="server" Text='<%#Eval("ShipName")%>' Visible="true"/> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid> </div> <asp:TextBox ID="tb_componentname" TextMode="SingleLine" MaxLength="250" runat="server" CssClass="STD"></asp:TextBox> </form></body></html>
TestEnterKey.aspx.cs:
using System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Text;using System.Configuration;using System.Collections.Generic;using System.Web.Security;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using Telerik.Web.UI;public partial class TestEnterKey : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } public class MyOrder { public int OrderID { get; set; } public DateTime OrderDate { get; set; } public double Freight { get; set; } public string ShipName { get; set; } public string ShipCountry { get; set; } } protected void grid_RowCommand(object sender, GridCommandEventArgs e) { } protected void grid_SortCommand(object source, GridSortCommandEventArgs e) { } protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { LoadData(); } private void LoadData() { MyOrder _order1 = new MyOrder(); _order1.OrderID = 1; _order1.OrderDate = new DateTime(2014, 1, 18); _order1.Freight = 15.61; _order1.ShipCountry = "Canada"; _order1.ShipName = "David"; MyOrder _order2 = new MyOrder(); _order2.OrderID = 2; _order2.OrderDate = new DateTime(2015, 9, 12); _order2.Freight = 12.39; _order2.ShipCountry = "US"; _order2.ShipName = "Jack"; MyOrder _order3 = new MyOrder(); _order3.OrderID = 3; _order3.OrderDate = new DateTime(2015, 6, 2); _order3.Freight = 6.81; _order3.ShipCountry = "Mexico"; _order3.ShipName = "Howard"; MyOrder _order4 = new MyOrder(); _order4.OrderID = 4; _order4.OrderDate = new DateTime(2014, 3, 26); _order4.Freight = 19.92; _order4.ShipCountry = "Canada"; _order4.ShipName = "William"; MyOrder _order5 = new MyOrder(); _order5.OrderID = 5; _order5.OrderDate = new DateTime(2015, 5, 15); _order5.Freight = 9.96; _order5.ShipCountry = "US"; _order5.ShipName = "Don"; List<MyOrder> _myList = new List<MyOrder>(); _myList.Add(_order1); _myList.Add(_order2); _myList.Add(_order3); _myList.Add(_order4); _myList.Add(_order5); RadGrid1.DataSource = _myList; }}Any help is much appreciated!
