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