0

私はasp.netプロジェクトに取り組んでおり、関連する主なタスクはボタンクリックで画像divを生成することです。データベースから画像を取得して画面(別のdivまたはテーブル)に表示する場合と同様です。このタスクはどのように達成できますか?ボタンクリックで画像を配置し、次のボタンクリックで次の画像がその横に表示されるようにする方法を知ってうれしいです。

4

1 に答える 1

0

次のコードを使用すると、動的 div を生成できます。

HtmlGenericControl div1 = new HtmlGenericControl("div");

データベースから画像を表示するには、次のようなハンドラーを使用します。ashx ファイルを作成し、コードを追加してから、画像コントロールを動的に取得し、画像ハンドラーの出力を画像の imageURl プロパティにバインドします。コードは次のとおりです。

<%@ WebHandler Language="C#" Class="DisplayImg" %>

using System;
using System.Web;
using System.Configuration;
using System.IO;
using System.Data;
using System.Data.SqlClient;

public class DisplayImg : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        string theID;
        if (context.Request.QueryString["id"] != null)
            theID = context.Request.QueryString["id"].ToString();
        else
            throw new ArgumentException("No parameter specified");

        context.Response.ContentType = "image/jpeg";
        Stream strm = DisplayImage(theID);
        byte[] buffer = new byte[2048];
        int byteSeq = strm.Read(buffer, 0, 2048);

        while (byteSeq > 0)
        {
            context.Response.OutputStream.Write(buffer, 0, byteSeq);
            byteSeq = strm.Read(buffer, 0, 2048);
        }
    }

    public Stream DisplayImage(string theID)
    {
        SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SERVER"].ConnectionString.ToString());
        string sql = "SELECT Server_image_icon FROM tbl_ServerMaster WHERE server_Code = @ID";
        SqlCommand cmd = new SqlCommand(sql, connection);
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@ID", theID);
        connection.Open();
        object theImg = cmd.ExecuteScalar();
        try
        {
            return new MemoryStream((byte[])theImg);
        }
        catch
        {
            return null;
        }
        finally
        {
            connection.Close();
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

CS コードに 1 行追加するだけです

UploadImg.ImageUrl = "~/DisplayImg.ashx?id=" + code;

最後にdivに画像を追加します

div1.Controls.Add(YOUR IMAGE's ID);
于 2012-11-26T12:10:45.077 に答える