C#asp.net图像库查询字符串
现在我正在使用这段代码,但一旦Image.aspx与图片不在同一目录中,它就不能像404中那样工作。我想对所有图像都使用image.aspx,如果可能的话,将其保存在顶级目录中 列表视图页面:C#asp.net图像库查询字符串,c#,asp.net,C#,Asp.net,现在我正在使用这段代码,但一旦Image.aspx与图片不在同一目录中,它就不能像404中那样工作。我想对所有图像都使用image.aspx,如果可能的话,将其保存在顶级目录中 列表视图页面: <div class="datapager"> <asp:DataPager ID="DataPager1" runat="server" PageSize="20" PagedControlID="Listview1" QueryStringField="Page
<div class="datapager">
<asp:DataPager ID="DataPager1" runat="server" PageSize="20"
PagedControlID="Listview1" QueryStringField="PageID">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button"
ShowFirstPageButton="False"
ShowNextPageButton="False" ShowPreviousPageButton="True"
ShowLastPageButton="False" ButtonCssClass="PagerField" PreviousPageText="«
Previous" />
<asp:NumericPagerField CurrentPageLabelCssClass="NumericPagerField"
ButtonCount="10" NextPageText="More" PreviousPageText="More" />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="False"
ShowNextPageButton="True" ShowPreviousPageButton="False"
ShowFirstPageButton="False" ButtonCssClass="PagerField" NextPageText="Next»"/>
</Fields>
</asp:DataPager>
</div>
<div class="topadcell">Amazon Ad</div>
<asp:listview ID="Listview1" runat="server"
onpagepropertieschanging="Listview1_PagePropertiesChanging" >
<ItemTemplate>
<li>
<asp:HyperLink ID="lnkImage" Tooltip='<%# Eval("Name") %>' runat="server"
NavigateUrl='<%# Eval("Name","~/Image.aspx?Name=/Images/yeah/a/directory/{0}")%>' >
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Name", "~/Images/yeah/a
/directory/{0}") %> ' alt='<%# Eval("Name") %>'
Width="125" CssClass="picborder">
</asp:Image></asp:HyperLink></li>
</ItemTemplate>
<LayoutTemplate>
<ul ID="itemPlaceholderContainer" runat="server" class="gallery" >
<li id="itemPlaceholder" runat="server" ></li>
</ul>
</LayoutTemplate>
</asp:listview>
<div class="datapager">
<asp:DataPager ID="DataPager2" runat="server" PageSize="20"
PagedControlID="Listview1" QueryStringField="PageID">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button"
ShowFirstPageButton="False"
ShowNextPageButton="False" ShowPreviousPageButton="True"
ShowLastPageButton="False" ButtonCssClass="PagerField" PreviousPageText="«
Previous"/>
<asp:NumericPagerField CurrentPageLabelCssClass="NumericPagerField"
ButtonCount="10" NextPageText="More" PreviousPageText="More" />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="False"
ShowNextPageButton="True" ShowPreviousPageButton="False"
ShowFirstPageButton="False" ButtonCssClass="PagerField" NextPageText="Next»"/>
</Fields>
</asp:DataPager>
<ItemTemplate>
<li>
<asp:HyperLink ID="lnkImage" Tooltip='<%# Eval("Name") %>' runat="server" NavigateUrl='<%# Eval("Name", "~/Image.aspx?Image1=Images/yeah/a/directory/{0}&Name={0}") %>' >
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Name", "~Images/yeah/a/directory/{0}") %> ' alt='<%# Eval("Name") %>' Width="125" CssClass="picborder">
</asp:Image></asp:HyperLink></li>
</ItemTemplate>
亚马逊广告
.cs页面是:
private void BindListImages()
{
int i = 0;
DirectoryInfo dir = new DirectoryInfo(MapPath("~/Images/yeah/a/directory/"));
FileInfo[] file = dir.GetFiles();
System.Collections.ArrayList list = new System.Collections.ArrayList();
foreach (FileInfo file2 in file)
{
if (i <= 6000)
{
if (file2.Extension == ".jpg" || file2.Extension == ".jpeg" ||
file2.Extension == ".JPG" || file2.Extension == ".gif")
{
list.Add(file2);
i++;
}
}
}
Listview1.DataSource = list;
Listview1.DataBind();
}
public class Person
{
public string Name { get; set; }
}
protected void Listview1_PagePropertiesChanging(object sender,
PagePropertiesChangingEventArgs e)
{
DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
DataPager2.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
BindListImages();
}
protected void Page_Init(object sender, EventArgs e)
{
BindListImages();
}
private void BindListImages()
{
int i=0;
DirectoryInfo dir=newdirectoryinfo(映射路径(“~/Images/yeah/a/directory/”);
FileInfo[]file=dir.GetFiles();
System.Collections.ArrayList list=新的System.Collections.ArrayList();
foreach(文件中的FileInfo file2)
{
如果(i的话,快速而肮脏的解决方案是更改image.aspx文件,使其绝对指向图像文件
假设图像存储在/resources/img文件夹中;代码如下所示:
<span class="imagewarpper">
<img id="fullsize" src='/resources/img/<%# Request.QueryString["Name"]%>'
alt='/resources/img/<%=Request.QueryString["Name"] %>'
title="<%= Request.QueryString["Name"] %>" class="picture"/>
</span>
'
alt='/resources/img/'
title=”“class=“图片”/>
请注意,src和alt参数是如何接收到一些附加代码的,这些代码是与参数名一起组成和呈现的
有更好的方法来实现这一点,但我认为这已经足够清楚,可以向您展示必要的更改。解决了这一问题,并认为我会将其放在这里,以供任何阅读本文并需要帮助的人使用。后面的代码保持不变,我只在每页上更改了一些内容
列表视图页面:
<div class="datapager">
<asp:DataPager ID="DataPager1" runat="server" PageSize="20"
PagedControlID="Listview1" QueryStringField="PageID">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button"
ShowFirstPageButton="False"
ShowNextPageButton="False" ShowPreviousPageButton="True"
ShowLastPageButton="False" ButtonCssClass="PagerField" PreviousPageText="«
Previous" />
<asp:NumericPagerField CurrentPageLabelCssClass="NumericPagerField"
ButtonCount="10" NextPageText="More" PreviousPageText="More" />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="False"
ShowNextPageButton="True" ShowPreviousPageButton="False"
ShowFirstPageButton="False" ButtonCssClass="PagerField" NextPageText="Next»"/>
</Fields>
</asp:DataPager>
</div>
<div class="topadcell">Amazon Ad</div>
<asp:listview ID="Listview1" runat="server"
onpagepropertieschanging="Listview1_PagePropertiesChanging" >
<ItemTemplate>
<li>
<asp:HyperLink ID="lnkImage" Tooltip='<%# Eval("Name") %>' runat="server"
NavigateUrl='<%# Eval("Name","~/Image.aspx?Name=/Images/yeah/a/directory/{0}")%>' >
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Name", "~/Images/yeah/a
/directory/{0}") %> ' alt='<%# Eval("Name") %>'
Width="125" CssClass="picborder">
</asp:Image></asp:HyperLink></li>
</ItemTemplate>
<LayoutTemplate>
<ul ID="itemPlaceholderContainer" runat="server" class="gallery" >
<li id="itemPlaceholder" runat="server" ></li>
</ul>
</LayoutTemplate>
</asp:listview>
<div class="datapager">
<asp:DataPager ID="DataPager2" runat="server" PageSize="20"
PagedControlID="Listview1" QueryStringField="PageID">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button"
ShowFirstPageButton="False"
ShowNextPageButton="False" ShowPreviousPageButton="True"
ShowLastPageButton="False" ButtonCssClass="PagerField" PreviousPageText="«
Previous"/>
<asp:NumericPagerField CurrentPageLabelCssClass="NumericPagerField"
ButtonCount="10" NextPageText="More" PreviousPageText="More" />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="False"
ShowNextPageButton="True" ShowPreviousPageButton="False"
ShowFirstPageButton="False" ButtonCssClass="PagerField" NextPageText="Next»"/>
</Fields>
</asp:DataPager>
<ItemTemplate>
<li>
<asp:HyperLink ID="lnkImage" Tooltip='<%# Eval("Name") %>' runat="server" NavigateUrl='<%# Eval("Name", "~/Image.aspx?Image1=Images/yeah/a/directory/{0}&Name={0}") %>' >
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Name", "~Images/yeah/a/directory/{0}") %> ' alt='<%# Eval("Name") %>' Width="125" CssClass="picborder">
</asp:Image></asp:HyperLink></li>
</ItemTemplate>
Image.aspx页面:
<img id="fullsize" src='<%= Request.QueryString["Image1"]%>' alt='<%= Request.QueryString["Name"]%>' title='<%= Request.QueryString["Name"]%>' class="picture"/>
'alt='title='class=“picture”/
这仍然意味着编辑image.aspx,只要我添加“~/Images/yeah/a/directory/”就可以了到image.aspx的开头,然后将image.aspx放在与图片相同的目录中。我很酷,一旦我尝试将image.aspx放在主目录中,它就会断开。我希望这有意义?是的,它有意义,但理论上它可以顺利工作,因为前导斜杠(/)。请注意,它与平铺斜杠(~/)不同,您可以在此处查看()。在这种情况下,您可以将应用程序根路径调整为站点根路径格式。感谢所有帮助。我尝试了上述方法,但图片也没有加载到Image.aspx页面。我通过在gallery页面上使用此NavigateUrl=''>,实现了这一点。我删除了Images/yeah/a/目录前面路径中的/中。您有被称为“又快又脏”我希望这是干净的。任何建议。现在我的alt和title标签正在提供完整的图像路径,而不仅仅是我想要的图像名称。谢谢。谢谢所有的帮助。我终于又开始玩弄它了。NavigateUrl=''。现在图像在新页面上打开,我可以使用que在新页面上添加一个字符串,为图像添加标签,并将其用于页面标题、alt标记、图像标题{tooltip}和搜索引擎优化的元描述。现在,我已经将其中的大部分内容移动到母版页,并可以将其用于站点上的数十万图像,在图像页面上运行广告以及导航。