حال که Sproc ما کامل شد بهتره به کدهامون در ASP.NET برگردیم .
کد من در لایه دیتا خیلی سادست . از لایه تجاری فراخوانی میشه و پارامتر ها رو میگیره و رکوردهای متناسب برمیگردونه
در لایه Bll هم کار خاصی صورت نمیگیره تنها با پارمترهای متفاوت Dal رو فراخوانی میکنه
[DataObjectMethod(DataObjectMethodType.Select, false)]
public static EmployeesCollection SelectListByDepartmentID(int departmentID,int startRowIndex, int maximumRows, string sortExpression)
{
if (departmentID == 0)
return SelectAll(startRowIndex, maximumRows, sortExpression);
else
return EmployeesDB.SelectListByDepartmentID( departmentID, startRowIndex, maximumRows, sortExpression);
}
public static int SelectListByDepartmentIDCount(int departmentID , int startRowIndex, int maximumRows, string sortExpression)
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
if (departmentID == 0)
{
if (context.Cache["SelectAllCount"] == null)
context.Cache["SelectAllCount"] = EmployeesDB.SelectAllCount();
return (int)context.Cache["SelectAllCount"];
}
else
{
return EmployeesDB.SelectListByDepartmentIDCount(departme ntID);
}
}
قسمت اعظم کار ما انجام شده و تنها کافی هست یک Gridview در فرم قرار داده به ObjectDataSource ای که رکورد های رو بر میگردونه Bind کنیم :
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server"
DataObjectTypeName="MD.TestPagingData.BusinessEnti ties.Employees"
DeleteMethod="Delete" EnablePaging="True" InsertMethod="Insert"
OldValuesParameterFormatString="original_{0}"
SelectCountMethod="SelectListByDepartmentIDCount"
SelectMethod="SelectListByDepartmentID" SortParameterName="sortExpression"
TypeName="MD.TestPagingData.Bll.EmployeesManager" UpdateMethod="Update">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="departmentID"
PropertyName="SelectedValue" Type="Int32" DefaultValue="0" />
<asp:Parameter Name="startRowIndex" Type="Int32" />
<asp:Parameter Name="maximumRows" Type="Int32" />
<asp:Parameter Name="sortExpression" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
دقت کنید که ObjectDataSource پارامتر هایی بنام MaximumRowsParameterName , StartRowIndexParameterName دارد که به طورپیش فرض مقادیر زیر را دارند :
maximumRowsو startRowIndex. چنانچه در Bll متد شما نام پارمترهایش متفاوت بود باید این Property ها رو مقدار دهی کنید مثلا :
MaximumRowsParameterName="RowMax"
StartRowIndexParameterName="RowIndexStart"
کار دیگری نمونده که انجام بدیم . پروژه رو ميتونيد دانلود كنيد .
امیدوارم تونسته باشم کمکی کرده باشم .
موفق باشید
دانلود