【问题标题】:How to load images on page refresh from folder using Asp.Net如何使用 Asp.Net 从文件夹刷新页面加载图像
【发布时间】:2012-03-01 06:38:28
【问题描述】:

我想知道在Page refresh 上我想display40+ images 更多existed 在我的server folder 中显示在已经存在的div 控件中并添加这些图像到那个div

到目前为止,我可以使用如下所示的方式显示一张图像:

Preview.ImageUrl = "~/DownloadImages/" & Session("tempDir").ToString & "/" & filename

我想知道更好的解决方案!

以下是图像的生成方式:

<script type="text/javascript">
        $(function () {
            $("#<%=uploader.ClientId%>").plupload({
                runtimes: 'gears,flash,silverlight,browserplus,html5',
                url: 'Default.aspx',
                max_file_size: '10mb',
                max_file_count: 21,
                chunk_size: '1mb',
                unique_names: true,
                rename: true,
                dragdrop: true,
                filters: [
            { title: "Image files", extensions: "jpg,gif,png" },
            { title: "Zip files", extensions: "zip" }
        ],

                flash_swf_url: 'js/plupload.flash.swf',


                silverlight_xap_url: 'js/plupload.silverlight.xap'
            });



            $('form').submit(function (e) {
                var uploader = $('#<%=uploader.ClientId%>').plupload('getUploader');


                if (uploader.files.length > 0) {

                    uploader.bind('StateChanged', function () {
                        if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
                            $('form')[0].submit();
                        }
                    });

                    uploader.start();
                }
                else
                //alert('You must at least upload one file.');

                    return false;
            });



            var uploader = $('#<%=uploader.ClientId%>').plupload('getUploader');
            uploader.bind('FilesAdded', function (up, files) {

                var i = up.files.length,
                maxCountError = false;

                plupload.each(files, function (file) {
                    setTimeout(function () {
                        up.start();
                    }, 100);



                    if (uploader.settings.max_file_count && i >= uploader.settings.max_file_count) {
                        $.msgBox({
                            title: "Info",
                            content: "Max Files Reached.",
                            type: "info",
                            showButtons: true,
                            opacity: 0.1,
                            autoClose: false
                        });
                        uploader.removeFile(up.files[i - 1]);
                    } else {

                    }
                });

            });


            var uploader = $('#<%=uploader.ClientId%>').plupload('getUploader');
            uploader.bind('FileUploaded', function (up, file, res) {

                $('#<%=thumbs.ClientId%>').append("<div id=" + file.id + "><a href='Uploads/" + document.getElementById("<%=currentDirectory.ClientId%>").value + "/" + file.name + "' rel='group1'><img class='clickImage' src='Uploads/" + document.getElementById("<%=currentDirectory.ClientId%>").value + "/" + file.name + "' width='75' height='50' data-full='Uploads/" + document.getElementById("<%=currentDirectory.ClientId%>").value + "/" + file.name + "'/></div>");
                if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
                    showStickySuccessToast();
                }

            });
        });




        function randomString(length) {
            var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');

            if (!length) {
                length = Math.floor(Math.random() * chars.length);
            }

            var str = '';
            for (var i = 0; i < length; i++) {
                str += chars[Math.floor(Math.random() * chars.length)];
            }
            return str;
        }
    </script>

如果我知道用户可以添加多少图片,那么这很容易,但很难说这是主要问题。

【问题讨论】:

  • 您需要添加更多详细信息;你所说的令人困惑:例如您希望一次显示所有图像,还是一次显示一个(您会以某种方式切换;如何?按钮单击?)。
  • @Hari-对不起,如果它让你感到困惑!我需要添加现有文件夹中的所有图像,我需要显示它们。而且不是一次一个。
  • 在这种情况下,@H27studio 提供的答案应该适合您。除了也许你可以使用面板控件而不是 div#existingDiv,如果这对你来说更容易的话。

标签: asp.net image html page-refresh


【解决方案1】:

您可以使用文字或图像控件并将它们添加到面板上(如果您将 runat="server" 添加到 aspx 文件中,甚至可以添加到 div)

<div id="existingDiv" runat="server"></div>

我更喜欢图像控件……像这样:(当然这是一个非常简单的例子)

foreach(string imageURL in urlsList)
{
    var img = new System.Web.UI.WebControls.Image();
    img.ImageUrl=imageURL;
img.Width = 200;
img.Height = 100;
this.div1.Controls.Add(img);
}

编辑: 在 urlsList 中,我像这样加载 url:(VB)

Dim urls As New List(Of String) 'I dont know if you need another parenthesis here on VB...
urls.Add("imageurl1")
urls.Add("imageurl2")

【讨论】:

  • @H27studio-感谢您的回复。当我将此示例转换为 VB 时,它在 urlsList 处显示错误,我需要替换什么?
  • 对于 VB 也是: new System.Web.UI.WebControls.Image() With { .ImageUrl = imageURL}
  • @DotNetter 错误说明了什么?错误消息不是魔法。
  • 这是一个变化,在 urlsList 中,您必须创建一个数组或一个 List(字符串)并添加到图像的 Urls 中。 ;-)
  • 对不起,我做错了,现在它开始工作了。非常感谢你真的为我节省了很多时间:)干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2015-08-08
  • 1970-01-01
  • 2014-02-14
  • 2012-11-23
  • 2011-07-07
相关资源
最近更新 更多