Completed
Last Updated: 28 Dec 2023 14:08 by ADMIN
Created by: Nick
Comments: 1
Category: SearchBox
Type: Feature Request
0

I want to be able to let a user choose "Landlords", "Tenants", "Owners" and search for a name. The data for the search box comes from different tables.

<asp:SqlDataSource ID="SqlDataSourceTenants" runat="server"

                           ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
                           SelectCommand="SELECT Id,TenantEntityName as EntityName FROM TenantEntities"></asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSourceLandlords" runat="server"
                           ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
                           SelectCommand="SELECT Id, LandlordEntityName as EntityName FROM LandlordEntities"></asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSourceOwners" runat="server"
                           ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
                           SelectCommand="SELECT Id,OwnerEntityName As EntityName FROM OwnerEntities"></asp:SqlDataSource> 

I would like to set the DatasourceId on the RadSearchBox to one of the above when the SearchContext changes. I have worked out how to get the selected searchcontext text via an Ajax Request.

     function OnClientLoad(sender, args) {
                    var context = sender.get_searchContext();
                    var $ = $telerik.$;
                    $(context).on({
                        "selectedIndexChanged": function (event) {
                            var searchbox = $find("<%=RadSearchBox1.ClientID%>");

                // this is the search context dropdown selectedIndexChanged event handler 
                            var ajaxManager = $find("<%=RadAjaxManager1.ClientID%>");
                            ajaxManager.ajaxRequest(context.get_selectedItem().get_text());
            }
        });
                }

 

I cannot work out how to change the datasource at runtime (I get datasource not found when I run the following code).

    Protected Sub RadAjaxManager1_OnAjaxRequest(sender As Object, e As AjaxRequestEventArgs)
        if not isnothing(radsearchbox1.datasource)
            select Case e.Argument
                Case "Tenants"
                    RadSearchBox1.DataSource = sqldatasourcetenants
                    RadSearchBox1.databind
                Case "Landlords"
                    RadSearchBox1.DataSource = sqldatasourcelandlords
                    RadSearchBox1.databind
                Case "Owners"
                    RadSearchBox1.DataSource = sqldatasourceowners
                    RadSearchBox1.databind
            End Select
        End If
    End Sub

In the OnSearch Event I just need to get the type of entity (which I could get from checking the Id of the bound datasource) and the Id of the entity:

Protected Sub RadSearchBox1_OnSearch(sender As Object, e As SearchBoxEventArgs)
        If e.DataItem IsNot Nothing Then
            Dim dataItem = DirectCast(e.DataItem, Dictionary(Of String, Object))
            Dim thisId As String = dataItem("Id").ToString()
            Dim thisEntityName As String = dataItem("EntityName").ToString()
            ' Lookup in database and redirect to the relevant data view / edit page
        End If
    End Sub

 

Surely this is a common request and deserves consideration?

 

Completed
Last Updated: 15 Feb 2021 11:43 by ADMIN
Created by: n/a
Comments: 2
Category: SearchBox
Type: Feature Request
0

Perhaps a simple feature to permit high speed searches in RadSearch is to allow custom SQL Select strings in lieu of direct connect to a SQL Datasource (unless there is a way to accomplish the following in a SQL Datasource)

I have FreeText and text optimization configured/added in SQL Server.  This provides a tremendous speed boost for searching strings.  Therefore, somehow in the RadSearch box allow searches such as:

SELECT * FROM myTable WHERE contains(myTextIndexedColumn,'this is fast') 

SELECT * FROM myTable WHERE FreeText(myTextIndexedColumn,'this is so much faster!') 

Completed
Last Updated: 27 May 2021 08:30 by ADMIN
Created by: SALVATORE
Comments: 1
Category: SearchBox
Type: Feature Request
0
Can I advice to extend SearchBox or RadAutoCompleteBox control to write free text and open list box only if I digit a custom char like '@'?
I am tinking a control like Post textbox in Facebook or in Twitter where I can digit text and, if I digit '@' char opens a list with all friends o mine.

If you want extend more, it will be wonderful if you can associate more than one custom char and each custom char is associated to a different Data source.
Example:
- '@' to get products
- '#' to get Customers
- and so on...

This SearchBox must can be multiline too.

Thanks,
Francesco.
Completed
Last Updated: 07 Dec 2022 13:09 by ADMIN
Release R1 2023
Completed
Last Updated: 05 Nov 2014 10:37 by Elena