2012-03-07 2 views
1

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

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

Моя кнопка:

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

Тогда OnClick:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
     { 

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

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

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

ответ

1

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

OnCommand="ImageButton1_Click" 

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

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

Пробовал, только после размещения, но: Ошибки \t \t 1 «System.Web.UI.ImageClickEventArgs» не содержит определение для «CommandArgument» и нет методы расширения «CommandArgument» принимать первый аргумент типа «System .Web.UI.ImageClickEventArgs '(вам не хватает директивы использования или ссылки на сборку?) – dargod

+0

ok, обновлено .... – AGuyCalledGerald

+0

Aaa yes :) Хорошо работать, спасибо! Я также искал и нашел некоторые темы с проблемой между OnClick и OnCommand в ImageButton. Еще раз спасибо. – dargod

1

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

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

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

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

Смежные вопросы