Adding a Search textbox to a GridView

Posted on 2013-10-31
Last Modified: 2013-11-01
I need to add a Search feature to a GridView using a textbox and button. I am using a ObjectDataSource as seen in my code. The parameters are set but I am not sure how to filter it without create a new Select Method call that allows the new parameter.

I have been looking at options like the ObjectDataSource.FilterParameters Property but I get the error
The data source 'dsAssocObject' only supports filtering when the SelectMethod returns a DataSet or a DataTable.
Could you explain to me what this error means and a possible solution. I cannot change the original SelectMethod="GetEmployeeList" or its parameters. So is it possible to do this dynamically either directly on the aspx page or the code behind page?

I really need this solution like today (10/30), tomorrow the lastest. Please anyone I need you help. If I could give out more points due to the urgency of this solution I would. But I will have several more questions following this especially concerning the filtering option again with a checkbox. So stay tuned... And thanks!

                        <asp:Button runat="server" ID="btnInsertEmployeeDetails" CssClass="CssEditEmployeeAdminPanel" Text="Create New Employee" Width="150px" OnClick="btnInsertEmployeeDetails_Click"/>
                        <asp:Label cssclass="CurvedTitleVED" ID="lblTitleVED" runat="server" Text="Select Employee"/>
                        <asp:CheckBox ID="chkShowInactiveRecords" runat="server" Text="Show Inactive Records" CssClass="CssChkBoxShowDisabled" OnCheckedChanged="chkShowInactiveRecords_CheckedChanged" Width="200px" AutoPostBack="true" Checked="True" />
                        <asp:GridView ID="grdEmpAdmin" OnRowCommand="grdEmpAdmin_RowCommand" runat="server" AutoGenerateColumns="False" DataSourceID="dsEmpObject" AllowPaging="True" PageSize="15" CssClass="CssZMGrid" CellPadding="3" GridLines="None" AllowSorting="false" BackColor="White" BorderColor="AliceBlue" BorderStyle="None" BorderWidth="0" CellSpacing="1" >
                                <asp:TemplateField HeaderText="Select" HeaderStyle-HorizontalAlign="Left">
                                        <asp:LinkButton ID="lnkSelectEmployee" runat="server" CommandName="cmdEmpSelect" CommandArgument='<%#Eval("EmployeeID")%>'>
                                            <asp:Image ID="imgSelectEmployee" runat="server" ImageUrl="~/images/MaintenanceGrid.png" BorderStyle="None" width="20" height="20"/>
                                        <asp:Image ID="imgRunning" runat="server" ImageUrl="~/images/running.gif" BorderStyle="None" width="20" height="20" Visible="false"/>
                                <asp:TemplateField HeaderText="Full Name" SortExpression="FullName">
                                        <asp:TextBox ID="txtFullName" runat="server" Text='<%# Bind("FullName") %>'></asp:TextBox>
                                        <asp:Label ID="lblFullName" runat="server" Text='<%# Bind("FullName") %>'></asp:Label>
                                <asp:TemplateField HeaderText="Employee Number" SortExpression="EmployeeNumber">
                                        <asp:TextBox ID="txtEmployeeNumber" runat="server" Text='<%# Bind("EmployeeNumber") %>'></asp:TextBox>
                                        <asp:Label ID="lblEmployeeNumber" runat="server" Text='<%# Bind("EmployeeNumber") %>'></asp:Label>
                                <asp:TemplateField HeaderText="Department Name" SortExpression="DepartmentName">
                                        <asp:TextBox ID="txtDepartmentName" runat="server" Text='<%# Bind("DepartmentName") %>'></asp:TextBox>
                                        <asp:Label ID="lblDepartmentName" runat="server" Text='<%# Bind("DepartmentName") %>'></asp:Label>
                                <asp:TemplateField HeaderText="Job Title Description" SortExpression="JobTitleDescription">
                                        <asp:TextBox ID="txtJobTitleDescription" runat="server" Text='<%# Bind("JobTitleDescription") %>'></asp:TextBox>
                                        <asp:Label ID="lblJobTitleDescription" runat="server" Text='<%# Bind("JobTitleDescription") %>'></asp:Label>
                            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                            <RowStyle BackColor="#EFF3FB" />
			                <AlternatingRowStyle BackColor="White" />
                            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#000000" />
                            <EditRowStyle BackColor="#2461BF" />
                            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                            <SortedAscendingCellStyle BackColor="#F5F7FB" />
                            <SortedAscendingHeaderStyle BackColor="#6D95E1" />
                            <SortedDescendingCellStyle BackColor="#E9EBEF" />
                            <SortedDescendingHeaderStyle BackColor="#4870BE" />
                        <asp:ObjectDataSource ID="dsEmpObject" runat="server" SelectMethod="GetEmployeeList" TypeName="Admin.Workshop.EmployeeWorkshop" FilterExpression="FullName='{0}'" OnFiltering="dsEmpObject_Filtering">
                                <asp:Parameter DefaultValue="" Direction="Output" Name="strReturnMessage" Type="String" />
                                <asp:Parameter DefaultValue="1" Name="tLocationID" Type="Int32" />
                                <asp:Parameter DefaultValue="true" Name="blDisabled" Type="Boolean" />
                                <asp:FormParameter Name="FullName" FormField="txtSearch"/>

Open in new window

Question by:RedXavier2k4
  • 2
  • 2

Author Comment

ID: 39614215
This is my GetEmployeeList Code. Can I use LINQ or something to return this code into a List, or dataset, datatable?
        public List<Admin.Employee> GetcList(out string strReturnMessage, int tSiteID, bool blDisabled)
            List<Admin.Employee> EmployeeAdminList = new List<Admin.vwEmployee>();

                EmployeeAdminList = mywebservice.GetEmployees(out strReturnMessage, tLocationID, blDisabled);
            catch (Exception ex)
                strReturnMessage = ex.Message.ToString();
            return EmployeeAdminList;

Open in new window

LVL 28

Accepted Solution

sammySeltzer earned 500 total points
ID: 39614282
I don't know what your search parameters are since you are using stored proc but assuming they are firstname and lastname, then add thes to the <SelectParameters>...</SELECTParameters?

                                     <asp:ControlParameter ControlID="txtSearch" Name="firstName" PropertyName="Text" Type="String" />
                                     <asp:ControlParameter ControlID="txtSearch" Name="lastName" PropertyName="Text" Type="String" />

Open in new window

Then at top of your gridview, NOT inside it, add these

        <asp:TextBox ID="txtSearch" runat="server" style="height:23px"></asp:TextBox>
        <asp:Button ID="btnSearch" runat="server" TabIndex="1" height="27px" Text="GO" OnClick="btnSearch_Click" class="btn" />

Open in new window

Finally, on codebehind, add this sub:

    Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As EventArgs)
    End Sub

Open in new window

All things being equal, this should work
LVL 28

Expert Comment

ID: 39614287
sorry, i didn't know you are using linq

Author Comment

ID: 39614344
Thanks for your reply. Yes I am using LINQ. I am pretty new to LINQ.

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Change to file doesn't show up 16 73
Please explain purpose of GZIP 4 56
C# class library debugging - Breakpoint will not hit. 8 30
WPF user control poped up from a window 1 35
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question