一次加载记录集,4个项目

时间:2013-01-19 10:44:57

标签: c# asp.net linq-to-entities sitefinity

我有一个关于在我的主页上为“幻灯片放映”加载记录集的问题。我正在使用ASP.NET,LINQ和C#。

这是转发器的标记:

<asp:Repeater ID="rptSlideShow" runat="server">
    <ItemTemplate>
        <div class="slide">
            <nav>
                <ul>
                    <li>
                        <a href="#">
                            <img src="Content/Images/logo-artica.gif" alt="ARTICA PRODUCTIONS" width="154" height="82" /></a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="Content/Images/logo-nead.gif" alt="NEAD A GOOD STORY" width="233" height="70" /></a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="Content/Images/logo-garden.gif" alt="YOUR GARDEN" width="250" height="90" /></a>
                    </li>
                    <li>
                        <a href="#">
                            <img src="Content/Images/logo-bitmap.gif" alt="Bitmap" width="48" height="54" /></a>
                    </li>
                </ul>
            </nav>
        </div>
    </ItemTemplate>
</asp:Repeater>

每个'幻灯片'应包含4个项目。所以我需要构建包含max的记录集。 4条记录。例如,如果最后一组仅包含2,因为没有更多记录,它需要重新开始并从头开始获得2个项目。

这在C#中是否可行?

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

首先,您可以加载数组中的所有图像。然后通过4检查提醒是否提醒变为零以重新组织另一个数组中的图像。最后遍历新数组以显示幻灯片。

你可能会从下面得到提示:

int[] arr;
// load all images
arr[0]="element0";
arr[1]="element1";
arr[2]="element2";
arr[3]="element3";
arr[4]="element4";
arr[5]="element5";
arr[6]="element6";
arr[7]="element7";
arr[8]="element8";
arr[9]="element9";

int newLength=0;
int count=0;
int reminder=0;

if(arr.length%4!=0){
reminder=(arr.length%4)
newLength=arr.length+reminder
}

int[] nArr=new int[newLength];

for(int i=0;i<arr.length;i++){
count++;
nArr[i]=arr[i];
if(i==arr.length-1){
int rem=nArr.length-arr.length;
for(int j=0;j<rem;j++){
nArr[count]=arr[j];
count++;
}
}
}

希望这有帮助,谢谢。

答案 1 :(得分:0)

SkipTake可以帮助您。

假设您拥有名为listOfElements

的变量中的所有元素

你可以这样做 -

第一页

var firstPageItems = listOfElements.Take(4);

第n页

var nthPageItems = list.Skip(n*4).Take(4);