Получение динамического изображения в элементе управления на основе URL-адреса с использованием C# и ASP.net.

StackOverflow https://stackoverflow.com/questions/116869

  •  02-07-2019
  •  | 
  •  

Вопрос

Я знаю, что это глупый вопрос.По какой-то причине у меня в голове по этому поводу пусто.Есть идеи?

Извините, должно было быть более ясно.

Используя HtmlGenericControl чтобы получить описание ссылки, а также изображение.

 private void InternalCreateChildControls()
    {
        if (this.DataItem != null && this.Relationships.Count > 0)
        {
            HtmlGenericControl fieldset = new HtmlGenericControl("fieldset");
            this.Controls.Add(fieldset);
            HtmlGenericControl legend = new HtmlGenericControl("legend");
            legend.InnerText = this.Caption;
            fieldset.Controls.Add(legend);

            HtmlGenericControl listControl = new HtmlGenericControl("ul");
            fieldset.Controls.Add(listControl);

            for (int i = 0; i < this.Relationships.Count; i++)
            {
                CatalogRelationshipsDataSet.CatalogRelationship relationship =
                    this.Relationships[i];

                HtmlGenericControl listItem = new HtmlGenericControl("li");
                listControl.Controls.Add(listItem);

                RelatedItemsContainer container = new RelatedItemsContainer(relationship);
                listItem.Controls.Add(container);

                Image Image = new Image();
                Image.ImageUrl = relationship.DisplayName;




                LinkButton link = new LinkButton();
                link.Text = relationship.DisplayName;



               ///ToDO Add Image or Image and description
                link.CommandName = "Redirect";
                container.Controls.Add(link);
            }
        }
    }

Я никого не прошу сделать это для меня, просто ссылка или идея.

Спасибо, я слишком расстроен и чувствую себя униженным.

Это было полезно?

Решение

Я предполагаю, что вы хотите динамически генерировать изображение на основе URL-адреса.

Обычно я создаю очень легкий HTTPHandler для обслуживания изображений:

using System;
using System.Web;

namespace Example
{  
    public class GetImage : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.QueryString("id") != null)
            {
                // Code that uses System.Drawing to construct the image
                // ...
                context.Response.ContentType = "image/pjpeg";
                context.Response.BinaryWrite(Image);
                context.Response.End();
            }
        }

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

Вы можете сослаться на это непосредственно в теге img:

<img src="GetImage.ashx?id=111"/>

Или вы даже можете создать серверный элемент управления, который сделает это за вас:

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Example.WebControl
{

    [ToolboxData("<{0}:DynamicImageCreator runat=server></{0}:DynamicImageCreator>")]
    public class DynamicImageCreator : Control
    {

        public int Id
        {
            get
            {
                if (ViewState["Id" + this.ID] == null)
                    return 0;
                else
                    return ViewState["Id"];
            }
            set
            {
                ViewState["Id" + this.ID] = value;
            }
        }

        protected override void RenderContents(HtmlTextWriter output)
        {
            output.Write("<img src='getImage.ashx?id=" + this.Id + "'/>");
            base.RenderContents(output);
        }
    }
}

Это можно использовать как

<cc:DDynamicImageCreator id="db1" Id="123" runat="server/>

Другие советы

Посмотрите новый Элемент управления динамическим изображением выпущен в CodePlex командой ASP.NET.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top