簡體   English   中英

改進和此PHP到ASP.NET轉換的錯誤?

[英]Improvements and bug with this php to asp.net conversion?

我發現對如何拍攝圖像的目錄,並建立一個畫廊了出來,並應用光盒插入到它的教程。 我不了解php,但我嘗試采用該代碼並對本教程進行asp.net/c#轉換,然后在這里運行

我面臨着一個問題,我也想知道是否可以做一些不同的事情。

我遇到的問題是,當您單擊不是第一張或最后一張圖像的圖像時,使用箭頭鍵向前和向后前進時,它從圖像12變為例如10到8到6等。否則可能會從2變為5到7。我不知道為什么會這樣。

至於生成圖庫的代碼,我有一種方法:

public string CreateGallery()
{
    StringBuilder sb = new StringBuilder();

    string directory = "gallery";
    string[] allowedTypes = new string[] { "jpg", "jpeg", "gif", "png" };

    string[] file_parts = new string[] { };


    string ext = "";
    string title = "";
    int i = 0;

    string[] files = System.IO.Directory.GetFiles(Server.MapPath(directory));


    foreach (var file in files)
    {

        file_parts = Path.GetFileName(file).Split('.');
        ext = file_parts[1];
        title = file_parts[0];

        string nomargin = "";

        if (allowedTypes.Contains(ext))
        {
            if ((i + 1) % 4 == 0) nomargin = "nomargin";

            sb.Append(string.Format("<div class=\"pic {0}\" 
                                    style=\"background:url('{1}') no-repeat 50% 
                                    50%\"><a href=\"{2}\" title=\"{3}\" target=\"_blank
                                       \">{4}</a></div>", 
                                    nomargin, directory + "/" + 
                                    Path.GetFileName(file),
                                    directory + "/" + Path.GetFileName(file), 
                                    Path.GetFileName(file), 
                                    Path.GetFileName(file)));

                i++;

            }

        }

        return sb.ToString();
    }

我在<%=CreateGallery() %>調用<%=CreateGallery() %> 基本上,我幾乎逐字復制了代碼,所以有什么我不需要做的事情(不必要的)。 <%=CreateGallery() %>調用<%=CreateGallery() %>是一個不錯的選擇,或者有更好的方法。 也歡迎其他改進。

我已經用更具體的術語解決了這個問題,但是我真的沒有適合您的解決方案。

首先單擊任何圖像即可。 當您關閉圖像並選擇一個新圖像時,問題就開始了。 對於您單擊的每個圖像,箭頭鍵將移動1張圖片。 因此,在您選擇第一個圖像時,它會完美運行; 每按一次箭頭鍵將移動一張圖片。 關閉第一張圖像並單擊第二張圖像后,箭頭鍵將移動2張圖片。 三幅圖像使箭頭鍵移動三幅圖像。

我的猜測是,每當用戶單擊圖像時,您都將為箭頭鍵創建某種事件處理程序,而在圖像關閉時不會刪除該事件處理程序。 因此,單擊三個圖像之后,單擊箭頭時,就會有三個事件處理程序沿圖像列表移動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM