Thursday, 18 April 2013

Object DataSource with Grid View(Asp.net & c# code)

Object DataSource with Grid View(Asp.net & c# code)


Asp.net(code)
<tr>
                        <td>
                            <asp:GridView CellPadding="4" ID="grvCompanyList" AllowPaging="true" PageSize="10"
                                runat="server" AutoGenerateColumns="false" Width="100%" DataSourceID="odsCompany"
                                DataKeyNames="Id" EmptyDataText="No Records Found...">
                                <Columns>
                                    <asp:TemplateField HeaderText="Company Detail">
                                        <ItemTemplate>
                                            <asp:HiddenField ID="hdnId" Value='<%# Eval("Id") %>' runat="server" />
                                           <%-- This is link button click used for edit, id value is taken from the above hidden control--%>
                                            <asp:LinkButton ID="lnkName" runat="server" Text='<%# Eval("Name") %>' OnClick="lnkName_Click"></asp:LinkButton>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                            </asp:GridView>
                            <%--IntegenAccounts.Business.CompanyManager is business logic layer--%>
                            <%--GetAllCompaniesPagedBySearchKey & GetTotalCountForAllCompaniesBySearchKey are methods in business logic layer--%>
                            <asp:ObjectDataSource ID="odsCompany" runat="server" TypeName="IntegenAccounts.Business.CompanyManager"
                                SelectMethod="GetAllCompaniesPagedBySearchKey" SelectCountMethod="GetTotalCountForAllCompaniesBySearchKey"
                                MaximumRowsParameterName="maximumRows" StartRowIndexParameterName="startRowIndex"
                                EnablePaging="True">
                                <SelectParameters>
                                    <asp:ControlParameter ControlID="txtSearch" Name="CompanyName" Type="string" />
                                    <asp:Parameter Name="orderBy" Type="string" DefaultValue="Name" />
                                    <asp:Parameter Name="startRowIndex" Type="Int32" />
                                    <asp:Parameter Name="maximumRows" Type="Int32" />
                                </SelectParameters>
                            </asp:ObjectDataSource>
                        </td>
                    </tr>

Code Behind(c#)
        public List<Company> GetAllCompaniesPagedBySearchKey(string CompanyName = default(string), string orderBy = default(string), int startRowIndex = default(int), int maximumRows = default(int))
        {
            if (CompanyName.IsNull())
                return GetAllCompaniesPaged(orderBy, startRowIndex, maximumRows);

            if (string.IsNullOrEmpty(orderBy))
                orderBy = "Id";

            if (startRowIndex < 0)
                throw (new ArgumentOutOfRangeException("startRowIndex"));

            if (maximumRows < 0)
                throw (new ArgumentOutOfRangeException("maximumRows"));

            return (
                    from Company in
                        _DatabaseContext.Companies
                        .DynamicOrderBy(orderBy)
                    where (Company.Name.Contains(CompanyName))
                    select Company
                    )
                    .Skip(startRowIndex)
                    .Take(maximumRows)
                    .ToList();
        }

        public int GetTotalCountForAllCompaniesBySearchKey(string CompanyName = default(string), string orderBy = default(string), int startRowIndex = default(int), int maximumRows = default(int))
        {
            if (CompanyName.IsNull())
                return GetTotalCountForAllCompanies(orderBy, startRowIndex, maximumRows);

            return _DatabaseContext.Companies.Count(Company => Company.Name.Contains(CompanyName));
        }


No comments:

Post a Comment