Saturday, 22 October 2011

Filtering in DataSet Using AJAX and Cache

DataView Class is used to filter and sorting of data in Data Set
Here I m giving an example of how we can filter and sort data in DataSet (In VB.NET, ASP.NET).

 Source Page :


<aj:UpdatePanel ID="UpdateVerifierDetails" runat="server"
                                    UpdateMode="Conditional" ChildrenAsTriggers="False">
                                    <ContentTemplate>
                                        <table style="width: 592px">
                                            <tr>
                                                <td style="width: 148px">
                                                    <asp:Label ID="Label40" runat="server" Font-Names="Trebuchet MS" Font-Size="Small">Verifier Designation :</asp:Label></td>
                                                <td style="width: 100px">
                                                    <asp:TextBox ID="TxtVerDesignation" runat="server" BorderStyle="Groove" Font-Names="Trebuchet MS"
                                                        Font-Size="Small" MaxLength="50" onkeydown="return DisableEscape(event)" onkeypress="return FName1(event)"
                                                        ReadOnly="True" TabIndex="31" Width="250px"></asp:TextBox></td>
                                            </tr>
                                            <tr>
                                                <td style="width: 148px">
                                                    <asp:Label ID="Label41" runat="server" Font-Names="Trebuchet MS" Font-Size="Small">Verifier Contact No : </asp:Label></td>
                                                <td style="width: 100px">
                                                    <asp:TextBox ID="TxtVerContactNo" runat="server" BorderStyle="Groove" Font-Names="Trebuchet MS"
                                                        Font-Size="Small" MaxLength="100" onkeydown="return DisableEscape(event)" onkeypress="return Phone(event)"
                                                        ReadOnly="True" TabIndex="32" Width="250px"></asp:TextBox></td>
                                            </tr>
                                            <tr>
                                                <td style="width: 148px">
                                                    <asp:Label ID="Label42" runat="server" Font-Names="Trebuchet MS" Font-Size="Small">Verifier Mobile No : </asp:Label></td>
                                                <td style="width: 100px">
                                                    <asp:TextBox ID="TxtVerMobileNo" runat="server" BorderStyle="Groove" Font-Names="Trebuchet MS"
                                                        Font-Size="Small" MaxLength="15" onkeydown="return DisableEscape(event)" onkeypress="return Phone(event)"
                                                        ReadOnly="True" TabIndex="33" Width="250px"></asp:TextBox></td>
                                            </tr>
                                            <tr>
                                                <td style="width: 148px">
                                                    <asp:Label ID="Label43" runat="server" Font-Names="Trebuchet MS" Font-Size="Small">Verifier E-Mail ID :</asp:Label></td>
                                                <td style="width: 100px">
                                                    <asp:TextBox ID="TxtVerEMailID" runat="server" BorderStyle="Groove" Font-Names="Trebuchet MS"
                                                        Font-Size="Small" MaxLength="50" onkeydown="return DisableEscape(event)" onkeypress="return Mail(event)"
                                                        ReadOnly="True" TabIndex="34" Width="250px"></asp:TextBox></td>
                                            </tr>
                                        </table>
                                    </ContentTemplate>
                                    <Triggers>
                                        <aj:AsyncPostBackTrigger ControlID="DdlVerifierName" EventName="SelectedIndexChanged" />
                                    </Triggers>
                                </aj:UpdatePanel>

Code :


Load the Detailed DataSet :

Sub LoadVerifierDetails()
            Try
                If Cache("VeirifierDetails") Is Nothing Then
                    Cmd = New OleDbCommand("Sp_LoadVerifierDetails_Verified", Con)
                    Cmd.CommandTimeout = 0
                    Cmd.CommandType = CommandType.StoredProcedure
                    dsVerifierDetails = New DataSet()
                    da = New OleDbDataAdapter(Cmd)
                    da.Fill(dsVerifierDetails, "Verifierdetails")
                    Cache.Insert("VeirifierDetails", dsVerifierDetails, Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(20))
                Else
                    dsVerifierDetails = DirectCast(Cache("VeirifierDetails"), DataSet)
                End If
                flag = True
            Catch ex As Exception
                ConObj.ErrorLog(HttpContext.Current.Server.MapPath("~\ErrorLogs\Logfiles"), ex.Message, ex.StackTrace)
            Finally
                ''Cache.Remove("VeirifierDetails")
                Cmd.Dispose()
            End Try
        End Sub



Filtering Code :

If flag = True Then
                    dv = dsVerifierDetails.Tables("Verifierdetails").DefaultView
                    dv.RowFilter = "TeamVerifierRowID=" & DdlVerifierName.SelectedValue
                End If

 If dv.Count <> 0 Then
                    TxtVerDesignation.Text = Convert.ToString(dv.Item(0)("Designation"))
                    TxtVerContactNo.Text = Convert.ToString(dv.Item(0)("ContactNo"))
                    TxtVerMobileNo.Text = Convert.ToString(dv.Item(0)("MobileNo"))
                    TxtVerEMailID.Text = Convert.ToString(dv.Item(0)("EmailID"))
                End If