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() %>
是一个好的选择,还是有更好的方法。其他的改进也是受欢迎的。
我已经用更具体的术语解决了这个问题,但我真的没有解决方案给你。
点击任何图像首先工作。当您关闭图像并选择新图像时,问题就开始了。对于你点击的每一张图片,箭头键将移动一张图片。所以在你的第一个图像选择上,它将完美地工作;每个箭头键将移动一个图片。当你关闭第一张图片并点击第二张图片时,箭头键将移动2张图片。三个图像使箭头键移动三个图像。
我的猜测是,当用户单击图像时,您正在为箭头键创建某种事件处理程序,而不是在图像关闭时删除该事件处理程序。因此,在单击三个图像之后,您有三个事件处理程序在箭头键单击下沿着图片列表移动。