Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#asp.net图像库查询字符串_C#_Asp.net - Fatal编程技术网

C#asp.net图像库查询字符串

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

现在我正在使用这段代码,但一旦Image.aspx与图片不在同一目录中,它就不能像404中那样工作。我想对所有图像都使用image.aspx,如果可能的话,将其保存在顶级目录中

列表视图页面:

   <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="&#171;
   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&#187;"/>
        </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="&#171;
     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&#187;"/>
        </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=“图片”/>
    
    请注意,srcalt参数是如何接收到一些附加代码的,这些代码是与参数名一起组成和呈现的


    有更好的方法来实现这一点,但我认为这已经足够清楚,可以向您展示必要的更改。

    解决了这一问题,并认为我会将其放在这里,以供任何阅读本文并需要帮助的人使用。后面的代码保持不变,我只在每页上更改了一些内容

    列表视图页面:

       <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="&#171;
       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&#187;"/>
            </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="&#171;
         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&#187;"/>
            </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}和搜索引擎优化的元描述。现在,我已经将其中的大部分内容移动到母版页,并可以将其用于站点上的数十万图像,在图像页面上运行广告以及导航。