واکشی اطلاعات به صورت chunk chunk (تکه تکه) و نمایش در ListView
نویسنده: ایمان اسلامی
تاریخ: ۱۳۹۱/۰۴/۳۰ ۱۳:۳۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
public class User
{
public Int64 UserId { get; set; }
public String UserName { get; set; }
}
public interface IUserService
{
int GetCustomerCount();
List<User> GetCustomers(int StartIndex, int PageSize);
}
public class ImplUserService : IUserService
{
IUnitOfWork _uow;
IDbSet<User> _user;
public ImplUserService(IUnitOfWork uow)
{
_uow = uow;
_user = uow.Set<User>();
}
public int GetCustomerCount()
{
int totalCount = _user.ToList().Count;
return totalCount;
}
public List<User> GetCustomers(int StartIndex, int PageSize)
{
return _user.OrderBy(i => i.UserId).Skip(StartIndex).Take(PageSize).ToList();
}
}
<asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDataSource1">
<ItemTemplate>
<tr style="background-color: #DCDCDC; color: #000000;">
<td>
<asp:Label ID="UserIdLabel" runat="server" Text='<%# Eval("UserId") %>' />
</td>
<td>
<asp:Label ID="UserNameLabel" runat="server" Text='<%# Eval("UserName") %>' />
</td>
</tr>
</ItemTemplate>
<LayoutTemplate>
<table runat="server">
<tr runat="server">
<td runat="server">
<table id="itemPlaceholderContainer" runat="server" border="1" style="background-color: #FFFFFF;
border-collapse: collapse; border-color: #999999; border-style: none; border-width: 1px;">
<tr runat="server" style="background-color: #DCDCDC; color: #000000;">
<th runat="server">
UserId
</th>
<th runat="server">
UserName
</th>
</tr>
<tr id="itemPlaceholder" runat="server">
</tr>
</table>
</td>
</tr>
<tr runat="server">
<td runat="server" style="text-align: center; background-color: #CCCCCC;
color: #000000;">
<asp:DataPager ID="DataPager1" runat="server" PageSize="2">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowNextPageButton="False"
ShowPreviousPageButton="False" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="False"
ShowPreviousPageButton="False" />
</Fields>
</asp:DataPager>
</td>
</tr>
</table>
</LayoutTemplate>
</asp:ListView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" EnablePaging="True" SelectCountMethod="GetCustomerCount"
SelectMethod="GetCustomers" TypeName="UserService.ImplUserService" EnableViewState="False"
MaximumRowsParameterName="PageSize" StartRowIndexParameterName="StartIndex">
protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
e.ObjectInstance = ObjectFactory.GetInstance<IUserService>();
}