php到asp.net转换的改进和bug

本文关键字:bug 转换 asp net php | 更新日期: 2023-09-27 18:03:42

我找到了这个教程,关于如何使用图像目录并从中构建一个图库并应用灯箱插件。我不知道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();
    }

我在demo.aspx中调用<%=CreateGallery() %>。我基本上是一字不差地复制了代码,所以有什么是我不需要做的(不必要的)。呼叫<%=CreateGallery() %>是一个好的选择,还是有更好的方法。其他的改进也是受欢迎的。

php到asp.net转换的改进和bug

我已经用更具体的术语解决了这个问题,但我真的没有解决方案给你。

点击任何图像首先工作。当您关闭图像并选择新图像时,问题就开始了。对于你点击的每一张图片,箭头键将移动一张图片。所以在你的第一个图像选择上,它将完美地工作;每个箭头键将移动一个图片。当你关闭第一张图片并点击第二张图片时,箭头键将移动2张图片。三个图像使箭头键移动三个图像。

我的猜测是,当用户单击图像时,您正在为箭头键创建某种事件处理程序,而不是在图像关闭时删除该事件处理程序。因此,在单击三个图像之后,您有三个事件处理程序在箭头键单击下沿着图片列表移动。