How to trigger the RadCombo ItemRequest and page Default button on "Enter" Key press
Actual case:
1. Two combo Boxes are there -- Issue & Pool
2. Pools are loaded depending upon the issue selection only
3. Having the coding in Item request Event for Issue combo box
4. While I set the enter key as default button to achive the Ok button functionality Item request Event is trigged -- How can I overcome this problem
Expecting
1. Two combo Boxes are there -- Issue & Pool
2. Pools are loaded depending upon the issue selection only
3. Having the coding in Item request Event for Issue combo box
4. If I place the cursor in issue combo and enter the Enter Key OK button functionality has to carried out.
Following is the code which I tried for the solution.
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %> <!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>Untitled Page</title> <script language="javascript" type="text/javascript"> var isPost=false; var issueDropDownClickStatus=false; function onDropDownOpening(sender, args) { var ev = args.get_domEvent(); if (ev) { var target = ev.target || ev.srcElement; if (target.id == sender.get_id() + "_Arrow") { issueDropDownClickStatus = true; } } } function OnClientItemsRequesting(sender,e) { if(sender.get_appendItems()) { e.get_context().CustomText=""; } else { e.get_context().CustomText=sender.get_text(); } if(issueDropDownClickStatus == true) { e.get_context().CustomText=""; } issueDropDownClickStatus = false; } function KeyHandler() {debugger; if(event.keyCode=='27') { } } document.onkeydown = KeyHandler; </script> </head> <body> <form id="form1" runat="server"> <div> <telerik:RadScriptManager ID="RadScriptManager1" Runat="server"> </telerik:RadScriptManager> <table cellpadding="0" cellspacing="0" width="100%"> <tr> <td style="white-space: nowrap"> <asp:Label ID="lblIssueTitle" runat="server">Issue:</asp:Label> </td> <td> <telerik:RadComboBox TabIndex="2" ID="drpIssues" runat="server" Height="80px" EnableScreenBoundaryDetection="false" AllowCustomText="false" MarkFirstMatch="true" EnableVirtualScrolling="true" EnableLoadOnDemand="True" ItemsPerRequest="5" ShowMoreResultsBox="true" AutoPostBack="true" HighlightTemplatedItems="true" OnClientItemsRequesting="OnClientItemsRequesting" > </telerik:RadComboBox> </td> </tr> <tr> <td style="white-space: nowrap"> <asp:Label ID="Label1" runat="server">Pool:</asp:Label> </td> <td> <telerik:RadComboBox TabIndex="2" ID="drpPool" runat="server" Height="80px" EnableScreenBoundaryDetection="false" EnableVirtualScrolling="true" EnableLoadOnDemand="True" ItemsPerRequest="5" AutoPostBack="true"> </telerik:RadComboBox> </td> </tr> <tr> <td colspan="2" align="left"> <asp:Button ID="ibtnAdd" runat="server" Text="OK" /> </td> </tr> <tr> <td colspan="2"> <telerik:RadGrid id="dgdloan" pagesize="10" runat="server" autogeneratecolumns="False" allowpaging="true" gridlines="None" allowsorting="true"> <ClientSettings> <Scrolling UseStaticHeaders="true" AllowScroll="true" /> </ClientSettings> <MasterTableView DataKeyNames="internal_id" AllowMultiColumnSorting="true" AllowSorting="true"> <Columns> <telerik:GridBoundColumn HeaderText="Loan Number" ItemStyle-Wrap="false" HeaderStyle-Wrap="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Loan Status" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" AllowSorting="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Loan State" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" > </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Loan Type" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" > </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Product Type" ItemStyle-Wrap="false" HeaderStyle-Wrap="false" > </telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> </td> </tr> </table> </div> </form> </body> </html> Imports System.Data Imports Telerik.Web.UI Partial Class _Default Inherits System.Web.UI.Page Private mIssueDT As DataTable Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then 'mIssuePool = AddEmptyRowToIssueMultiple() Else mIssueDT = DirectCast(ViewState("IssuePoolTable"), DataTable) End If mIssueDT = IssueItem() drpIssues.DataTextField = "issue_id" drpIssues.DataSource = mIssueDT drpIssues.DataBind() End Sub Private Function IssueItem() As DataTable Dim setData As New DataTable() Dim myDataColumn As DataColumn setData = New DataTable() myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String") myDataColumn.ColumnName = "issue_id" setData.Columns.Add(myDataColumn) Dim newRow1 As DataRow newRow1 = setData.NewRow() newRow1("issue_id") = "Item1" setData.Rows.Add(newRow1) Dim newRow2 As DataRow newRow2 = setData.NewRow() newRow2("issue_id") = "Item2" setData.Rows.Add(newRow2) Dim newRow3 As DataRow newRow3 = setData.NewRow() newRow3("issue_id") = "Item3" setData.Rows.Add(newRow3) Dim newRow4 As DataRow newRow4 = setData.NewRow() newRow4("issue_id") = "Item4" setData.Rows.Add(newRow4) Dim newRow5 As DataRow newRow5 = setData.NewRow() newRow5("issue_id") = "Item5" setData.Rows.Add(newRow5) Dim newRow6 As DataRow newRow6 = setData.NewRow() newRow6("issue_id") = "Item6" setData.Rows.Add(newRow6) Dim newRow7 As DataRow newRow7 = setData.NewRow() newRow7("issue_id") = "Item7" setData.Rows.Add(newRow7) Dim newRow8 As DataRow newRow8 = setData.NewRow() newRow8("issue_id") = "Item8" setData.Rows.Add(newRow8) Dim newRow9 As DataRow newRow9 = setData.NewRow() newRow9("issue_id") = "Item9" setData.Rows.Add(newRow9) Dim newRow10 As DataRow newRow10 = setData.NewRow() newRow10("issue_id") = "Item10" setData.Rows.Add(newRow10) Dim newRow11 As DataRow newRow11 = setData.NewRow() newRow11("issue_id") = "Item11" setData.Rows.Add(newRow11) Dim newRow12 As DataRow newRow12 = setData.NewRow() newRow12("issue_id") = "Item12" setData.Rows.Add(newRow12) Dim newRow13 As DataRow newRow13 = setData.NewRow() newRow13("issue_id") = "Item13" setData.Rows.Add(newRow13) Return setData End Function Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender ViewState("IssuePoolTable") = mIssueDT End Sub Protected Sub drpIssues_ItemsRequested(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs) Handles drpIssues.ItemsRequested Dim myRow As DataRow Dim setData As New DataTable() Dim getData As New DataTable() Dim itemOffset As Integer Dim endOffset As Integer Dim drpIssues As RadComboBox drpIssues = DirectCast(o, RadComboBox) 'getData = GetIssuesByName(e.Context("CustomText").ToString().Trim().ToUpper()) itemOffset = e.NumberOfItems endOffset = Math.Min(itemOffset + 25, getData.Rows.Count) e.EndOfItems = endOffset = getData.Rows.Count setData.Columns.Add("issue_id") setData.Columns.Add("issue_name") setData.Columns.Add("issue_status") setData.Columns.Add("issue_type") setData.Columns.Add("composite_name") For index As Integer = itemOffset To endOffset - 1 myRow = setData.NewRow() myRow("issue_id") = getData.Rows(index)("issue_id").ToString().Trim() myRow("issue_name") = getData.Rows(index)("issue_name").ToString().Trim() myRow("issue_status") = getData.Rows(index)("issue_status").ToString().Trim() myRow("issue_type") = getData.Rows(index)("issue_type").ToString().Trim() myRow("composite_name") = getData.Rows(index)("composite_name").ToString().Trim() setData.Rows.Add(myRow) Next drpIssues.DataSource = setData drpIssues.DataTextField = "composite_name" drpIssues.DataValueField = "issue_id" drpIssues.DataBind() If getData.Rows.Count = 0 Then e.Message = "No Matches" Else e.Message = [String].Format("Items <b>1</b>-<b>{0}</b> out of <b>{1}</b>", endOffset, getData.Rows.Count) End If End Sub Protected Sub drpIssues_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles drpIssues.SelectedIndexChanged Dim PoolData As New DataTable() Dim myDataColumn As DataColumn PoolData = New DataTable() myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String") myDataColumn.ColumnName = "Pool_id" PoolData.Columns.Add(myDataColumn) Select Case drpIssues.SelectedItem.Text.Trim() Case "Item1" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value1" PoolData.Rows.Add(newRow1) Case "Item2" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value2" PoolData.Rows.Add(newRow1) Case "Item3" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value3" PoolData.Rows.Add(newRow1) Case "Item4" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value4" PoolData.Rows.Add(newRow1) Case "Item5" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value5" PoolData.Rows.Add(newRow1) Case "Item6" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value6" PoolData.Rows.Add(newRow1) Case "Item7" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value7" PoolData.Rows.Add(newRow1) Case "Item8" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value8" PoolData.Rows.Add(newRow1) Case "Item9" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value9" PoolData.Rows.Add(newRow1) Case "Item10" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value10" PoolData.Rows.Add(newRow1) Case "Item11" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value11" PoolData.Rows.Add(newRow1) Case "Item12" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value12" PoolData.Rows.Add(newRow1) Case "Item13" Dim newRow1 As DataRow newRow1 = PoolData.NewRow() newRow1("Pool_id") = "Value13" PoolData.Rows.Add(newRow1) End Select drpPool.DataTextField = "Pool_id" drpPool.DataSource = PoolData drpPool.DataBind() End SubEnd Class