ritesh88sharma Ответов: 3

Показать изображение в Listview получить из базы данных в ASP.net


Привет,
Я хочу сделать фотогалерею. Но у меня есть проблема, чтобы показать изображение в виде списка. а изображения хранятся в базе данных(SQL Server 2005).
Я хочу показать изображение в табличном формате, и если я нажму на любое изображение, оно откроется в новом окне с большим размером. Я использую listView, но он не работает должным образом. Могу ли я использовать другой элемент управления для отображения изображения?

3 Ответов

Рейтинг:
2

Satheesh Kumar Subramanian

Привет,
Вы даже можете использовать элемент управления GridView для достижения того же самого, поскольку он имеет множество функций.

Во-первых, разместите GridView на главной странице следующим образом:
(Заменить на <положите ваш набор данных-Url_изображения-Имя_поля&ГТ; ваше фактическое имя поля)

<body>
    <form id="frmGallery" runat="server">
        <table id="Table6" align="center" cellpadding="0" cellspacing="0" style="border: 0px Solid Gray;
            width: 100%; font-family: tahoma; font-size: 10pt; background-color: white;">
            <tr>
                <td style="width: 100%; height: 200px;" align="left" valign="top">
                    <asp:GridView ID="gvImageGallery" runat="server"
                        PageSize="50" AutoGenerateColumns="false" Width="100%"
                        onrowcommand="gvImageGallery_RowCommand">
                        <Columns>
                            <asp:TemplateField HeaderText="Image">
                                <ItemStyle Width="100%" />
                                <ItemTemplate>
                                    <asp:ImageButton ID="imgBtnShow" runat="server" CommandName="ShowImage" CommandArgument="<%# Container.DataItemIndex %>"
                                        ImageUrl="<Put-Your-DataSet-ImageURL-FieldName>" />
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                </td>
            </tr>
        </table>
    </form>
</body>





Свяжите свой GridView с вашим набором данных и добавьте событие " gvImageGallery_RowCommand "

В этом случае сначала найдите выбранный индекс строки, затем найдите элемент управления ImageButton и, наконец, получите ImageURL этой кнопки.

Добавьте ClientScript, чтобы открыть всплывающее окно для отображения изображения(перед этим вам нужно создать страницу)
(найдите образец ниже)

private void BindGridView()
{    
    DataSet ds = "your-dataset-retrieval-stuff-here";

    gvImageGallery.DataSource = ds;
    gvImageGallery.DataBind();
}

protected void gvImageGallery_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "ShowImage")
    {
	// Get Selected Row Index through CommandArgument
	int index = Convert.ToInt32(e.CommandArgument);

	// Find ImageButton in GridView Row
	ImageButton imgBtn = (ImageButton)gvImageGallery.Rows[index].Cells[0].FindControl("imgBtnShow");

	// Get Selected Image's URL
	string imageURL = imgBtn.ImageUrl;

	// Open Popup window
	ClientScript.RegisterStartupScript(this.GetType(), "show", "<script language="javascript">window.open('Pop.aspx?URL=" + imageURL + "','ShowImage','height=300px,width=600px,scrollbars=1,center=yes');</script>");
    }
}



Во всплывающем окне создайте изображение и установите ImageURL из значения QueryString(пример приведен ниже)

<body>
    <form id="frmPopup" runat="server">
     <asp:Image ID="imgShow" runat="server" />
    </form>
</body>



public partial class Pop : System.Web.UI.Page
{
	protected void Page_Load(object sender, EventArgs e)
	{
	    if (!IsPostBack)
	    {
		if (Request.QueryString["URL"] != null)
		{
		    imgShow.ImageUrl = Request.QueryString["URL"];
		}
	    }
	}
}



Наконец, сделайте стили GridView, ImageButton и всплывающего окна высотой и шириной в соответствии с вашими требованиями


Sandeep Mewara

Мои 5!

Tarun.K.S

Хороший ответ! есть 5!

Рейтинг:
2

Mahendra.p25

привет,

Взять под контроль изображения в ListView свойства itemtemplate

<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server"

ImageUrl="~/Admin/Images/cross.gif"  />
br mode="hold" />
also set width and height of Image as your Requirement

and OnClientClick Write your function to pop a window and display Full Image


Рейтинг:
1

raju melveetilpurayil

эта ссылка поможет вам решить вашу проблему
Обработка изображений в ASP.NET[^]


Mydsh

Я хочу привязать изображения горизонтально в listview как это сделать с помощью c# asp.net

raju melveetilpurayil

проверьте эту ссылку, если вы хотите сделать "ListView repeat items horizontally"
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/68191cbc-9ee1-43a4-9d6f-147efc06662b

Спасибо

Mydsh

Спасибо

raju melveetilpurayil

Всегда приветствовать