Как получить изображение из базы данных, которые определяют в теге <ul>в aspx? - PullRequest
0 голосов
/ 19 октября 2011

Я хочу получить изображения, которые присутствуют в базе данных, тег изображения указан в теге, поэтому я не получаю, как я буду здесь делать, это мой код aspx

 <div id="mask-gallery">
      <ul id="gallery" runat="server">
        <li>
          <img src="/images/projects/<%# Eval("Top_Image")%>" width="981" height="279" title="hello" alt="hello"/></li>
          <asp:Image ID="imgTop" ImageUrl='/images/Projects/<%# Eval("Top_Image") %>' runat="server" width="981" height="279" AlternateText="hello" />
       </ul>
    </div> 

здесь мой код cs

SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["Constr"]);

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetImageData();
            }
        }
        protected void GetImageData()
        {
            SqlParameter[] param = new SqlParameter[1];

            param[0] = new SqlParameter("@Id_Project", SqlDbType.VarChar, 300);
            param[0].Value = lblid.Text.ToString().Trim();

            SqlCommand Cmdd = new SqlCommand("tpRetrieve_Project_Master_Top_Image", con);
            Cmdd.CommandType = CommandType.StoredProcedure;

            Cmdd.Parameters.Add(param[0]);
            con.Open();

            SqlDataReader drr = Cmdd.ExecuteReader();


            if (drr.HasRows)
            {
                while (drr.Read())
                {
                    hd_Show_In_Top.Value = drr["Show_In_Top"].ToString().Trim();
                    if (hd_Show_In_Top.Value == "Yes")
                    {
                        hd_thumbnail.Value = drr["Top_Image"].ToString().Trim();
                        lblbdescription.Text = drr["Description"].ToString().Trim();
                        lblbprojecttype.Text = drr["Project_type"].ToString().Trim();
                        // lblrotation.Text = lblrotation.Text + "<a href='/about-us/people.aspx'><img class='cloudcarousel'  src='/images/AboutUsTopImages/" + hd_thumbnail..Value.ToString().Trim() + " '/></a>";
                    }
                }
            }

            drr.Close();
            con.Close();
        }

Ответы [ 3 ]

2 голосов
/ 19 октября 2011

Один из возможных (и на самом деле очень распространенный) подход заключается в создании HttpHandler, который будет получать изображение из базы данных и записывать его в ответ. Проверьте эту ссылку , чтобы увидеть рабочий пример.

0 голосов
/ 19 октября 2011

Если Top_Image содержит имя_файла.ext (sample.jpeg), попробуйте это,

<img runat="server"
     src='<%# Eval("Top_Image","~/images/projects/{0}") %>'
     width="981" 
     height="279" 
     title="hello" 
     alt="hello"/>
    </li>
<asp:Image ID="imgTop" 
        ImageUrl='<%# Eval("Top_Image","~/images/Projects/{0}") %>'
        runat="server" 
        width="981" 
        height="279" 
AlternateText="hello" />

Если вы не привязываете DataSource, тогда нет необходимости использовать Eval() метод. Вы можете назначить свойство ImageUrl в коде позади.

if (drr.Read())
  {
    hd_Show_In_Top.Value = drr["Show_In_Top"].ToString().Trim();
    if (hd_Show_In_Top.Value == "Yes")
    {
       imgTop.ImageUrl="~/images/Projects/" +drr["Top_Image"].ToString().Trim();
       ....
    }
  }
0 голосов
/ 19 октября 2011

если вы сохраняете имя изображения с расширением в базе данных, вы можете сделать что-то вроде этого

var x = datasource();//your datasource which contains the imagefile

<img src='" + Page.ResolveUrl("~/images/projects/") + x.imageFile + "' alt='Test' />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...