C # Как отобразить изображение динамически в gridview из веб-сервиса - PullRequest
0 голосов
/ 27 января 2019

У меня есть этот код ниже, который я вызываю веб-сервис REST, чтобы заполнить мой gridview.То, что я сейчас пытаюсь сделать, это использовать image URL, который я получаю из API, чтобы отобразить изображение в моем сеточном представлении, а не просто ссылку.Есть ли простой способ сделать это?Любая помощь будет принята с благодарностью!

public partial class Book : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public class Result
    {
        public string title { get; set; }
        public string subtitle { get; set; }
        public string price { get; set; }
        public string image { get; set; }
        public string url { get; set; }
    }

    public class SearchList
    {
        public int resultCount;
        public Result[] books;
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        string searchTerm = TextBox1.Text;
        var webRequest = (HttpWebRequest)WebRequest.Create
        ("https://api.itbook.store/1.0/search/" + Server.UrlEncode(searchTerm));
        var webResponse = (HttpWebResponse)webRequest.GetResponse();
        if (webResponse.StatusCode == HttpStatusCode.OK)
        {
            JavaScriptSerializer json = new JavaScriptSerializer();
            StreamReader sr = new StreamReader(webResponse.GetResponseStream());
            string resString = sr.ReadToEnd();
            SearchList list = json.Deserialize<SearchList>(resString);
            GridView1.DataSource = list.books;
            GridView1.DataBind();
        }
        else
            Label1.Text = "Invalid Response";
    }
}

1 Ответ

0 голосов
/ 27 января 2019

Поскольку вы связываете список классов с GridView.Я бы порекомендовал использовать Stridly Typed GridView с ItemTemplate.Вы должны убедиться, что свойство ItemType указывает на ваш класс.

<asp:GridView ID="GridView1" runat="server" ItemType="YourNameSpace.Result">
    <Columns>
        <asp:TemplateField HeaderText="Title">
            <ItemTemplate>

                <%# Item.title  %>

            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Image">
            <ItemTemplate>

                <img src="<%# Item.url  %>" />

                <asp:Image ID="Image1" runat="server" ImageUrl='<%# Item.url %>' />

            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...