?
Solved

Adding a Search textbox to a GridView

Posted on 2013-10-31
4
Medium Priority
?
1,783 Views
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" >
                            <Columns>
                                <asp:TemplateField HeaderText="Select" HeaderStyle-HorizontalAlign="Left">
                                    <ItemTemplate>
                                        <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:LinkButton>
                                        <asp:Image ID="imgRunning" runat="server" ImageUrl="~/images/running.gif" BorderStyle="None" width="20" height="20" Visible="false"/>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Full Name" SortExpression="FullName">
                                    <EditItemTemplate>
                                        <asp:TextBox ID="txtFullName" runat="server" Text='<%# Bind("FullName") %>'></asp:TextBox>
                                    </EditItemTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="lblFullName" runat="server" Text='<%# Bind("FullName") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Employee Number" SortExpression="EmployeeNumber">
                                    <EditItemTemplate>
                                        <asp:TextBox ID="txtEmployeeNumber" runat="server" Text='<%# Bind("EmployeeNumber") %>'></asp:TextBox>
                                    </EditItemTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="lblEmployeeNumber" runat="server" Text='<%# Bind("EmployeeNumber") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Department Name" SortExpression="DepartmentName">
                                    <EditItemTemplate>
                                        <asp:TextBox ID="txtDepartmentName" runat="server" Text='<%# Bind("DepartmentName") %>'></asp:TextBox>
                                    </EditItemTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="lblDepartmentName" runat="server" Text='<%# Bind("DepartmentName") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Job Title Description" SortExpression="JobTitleDescription">
                                    <EditItemTemplate>
                                        <asp:TextBox ID="txtJobTitleDescription" runat="server" Text='<%# Bind("JobTitleDescription") %>'></asp:TextBox>
                                    </EditItemTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="lblJobTitleDescription" runat="server" Text='<%# Bind("JobTitleDescription") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                            <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:GridView>
                        <asp:ObjectDataSource ID="dsEmpObject" runat="server" SelectMethod="GetEmployeeList" TypeName="Admin.Workshop.EmployeeWorkshop" FilterExpression="FullName='{0}'" OnFiltering="dsEmpObject_Filtering">
                            <SelectParameters>
                                <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" />
                            </SelectParameters>
                            <FilterParameters>
                                <asp:FormParameter Name="FullName" FormField="txtSearch"/>
                            </FilterParameters>
                        </asp:ObjectDataSource>

Open in new window

0
Comment
Question by:RedXavier2k4
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 

Author Comment

by:RedXavier2k4
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>();

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

Open in new window

0
 
LVL 29

Accepted Solution

by:
sammySeltzer earned 1500 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)
        GridView1.DataBind()
    End Sub

Open in new window


All things being equal, this should work
0
 
LVL 29

Expert Comment

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

Author Comment

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

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Suggested Courses

777 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