大家好,昨天有提到我想要做的功能為” TABLE的上下左右看功能”,可是昨天寫出來的程式碼被今天的我發現完全錯誤,所以今天更新了正確的程式碼(在DAY24),下面談談row&column計算,跟我的程式碼應用解說。
紅線為記憶體中資料儲存的方向。
假設二維A[i][j] 。
一維A[z],z從1開始到i*j。
Z = (j-1)*i.max() + i
紅線為記憶體中資料儲存的方向。
假設二維A[i][j] 。
一維A[z],z從1開始到i*j。
Z = (i-1)*i.max() + j
我的實作:
昨天已經完成顯示範圍的判斷,不過昨天的程式碼中page1 、page2是寫死的,那我的page其實是我要顯示的終點做標各加1,例如(11,11)(11,21)(21,21)等等,那下面放上我的範圍判斷程式碼,然後因為一開始我的x,y就擺錯家,所以我的程式碼是(y,x)。
@if(R >= page1){
string tmp = ViewBag.TNAME + "," + (page1+10).ToString() + "," + page2.ToString();
<li><a asp-route-id=@tmp asp-controller="searchSeat" asp-action="searchSeat3" class="button special"><p>LOOK⬇</p></a></li>
}//R為最大的y做標,page1為目前範圍最終(y,x)的y+1。
@if(page2 <= C){
string tmp = ViewBag.TNAME + "," + page1.ToString()+ "," + (page2+10).ToString() + "," ;
<li><a asp-route-id=@tmp asp-controller="searchSeat" asp-action="searchSeat3" class="button special"><p>LOOK➡</p></a></li>
}//C為最大的x做標,page2為目前範圍最終(y,x)的x+1。
@if(page1 > 11){
string tmp = ViewBag.TNAME + "," + (page1-10).ToString() + "," + page2.ToString() ;
<li><a asp-route-id=@tmp asp-controller="searchSeat" asp-action="searchSeat3" class="button special"><p>LOOK⬆</p></a></li>
}
@if(page2 > 11 ){
string tmp = ViewBag.TNAME + "," + page1.ToString()+ "," + (page2-10).ToString() + "," ;
<li><a asp-route-id=@tmp asp-controller="searchSeat" asp-action="searchSeat3" class="button special"><p>LOOK⬅</p></a></li>
}
顯示結果
一進去查看座位表會從最左上方(1,1)開始顯示,目前的表大小為20x21,因為右邊和下面接還有座位,所以會出現LOOK➡、LOOK⬇按鈕。
按下LOOK➡後的解果,因為右邊沒有位子了,所以只剩下LOOK⬇跟可以回到左邊的LOOK⬅。
按下LOOK⬇,因為下面還有所以會出現LOOK⬇跟可以返回左邊LOOK⬅跟返回上面的LOOK⬆。
最後再按下LOOK⬇。
day25心得:
我要趕去家庭聚餐了,大家掰掰。