От DataList до страницы с подробностями - PullRequest
1 голос
/ 07 марта 2012

Мой сценарий: у меня есть DataList с некоторыми продуктами. Мой SqlDataSource принимает все значения, но я отображаю только изображение, имя и цену. Ярлык ProductID, видимый в шаблоне товара, имеет значение false.

Я добавил кнопку с изображением к каждому продукту, и я хотел бы нажать эту кнопку и перейти на страницу с более подробной информацией о каждом продукте. Мое решение - передать ProductID на страницу с подробностями. Но я что-то упускаю и не могу понять, как это сделать.

Моя кнопка:

<asp:ImageButton ID="ImageButton1" runat="server" CommandArgument='<%# Eval("productID")%>'
                                ImageUrl="~/Graphics/profile_button.png" onclick="ImageButton1_Click" />

Затем нажмите:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {

            string productID = ???????
            string url;

            url = "~/ProductDetails.aspx?productid=" + ProductID;
            Response.Redirect(url);
        }

Как видите, я не знаю, как получить CommandArgument. Как это сделать?

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Просто используйте следующее.

Не берите кнопку изображения, просто возьмите управление изображением и вставьте между тегами привязки.

<a href="~/ProductDetails.aspx?productid=<%#Eval("ProductID")"><asp:Image ID="img" runat="server" ImageUrl="="~/Graphics/profile_button.png"> </a>    

Поместите этот код в список данных.Это более легкий код.

1 голос
/ 07 марта 2012

Я думаю, что понял. Используйте

OnCommand="ImageButton1_Click"

(вместо onclick) в разметке кнопки изображения и

protected void ImageButton1_Click(object sender, CommandEventArgs e)
{
     string productID = e.CommandArgument.ToString(); 
     //..
}
...