Почему мой ASP.NET LinkButton не запускает событие OnClick= "AddToCart Click"?
Я уже целый день бьюсь головой об стену. Я работаю над "началом" Apress ASP.NET электронная коммерция в C#", в случае, если кто-то знаком с проектом. В главе 10 мы работаем с функциями PayPal AddToCart и GoToCart. Это событие, которое не стреляет:
//Why is this not working?
protected void AddToCartButton_Click1(object sender, EventArgs e)
{
string productID = Request.QueryString["ProductID"];
ProductDetails pd = CatalogAccess.GetProductDetails(productId);
string options = "";
foreach (Control cnt in attrPlaceHolder.Controls)
{
if (cnt is Label)
{
Label attrLabel = (Label)cnt;
options += attrLabel.Text;
}
if (cnt is DropDownList)
{
DropDownList attrDropDown = (DropDownList)cnt;
options += attrDropDown.Items[attrDropDown.SelectedIndex] + "; ";
}
string productUrl = Link.ToProduct(pd.ProductID.ToString());
string destination = Link.ToPayPalAddItem(productUrl, pd.Name, pd.Price, options);
Response.Redirect(destination);
}
вот код LinkButton:
<p>
<asp:LinkButton ID="AddToCartButton" runat="server" CausesValidation="False" OnClick="AddToCartButton_Click1">Add to Shopping Cart</asp:LinkButton>
</p>
Я попытался установить точку останова, но событие никогда не достигается. В LinkButton также вызывает обратную передачу, но никогда не запускает событие OnClick.
любая помощь была бы очень признательна!
вот url:http://www.northarktest.net/edwards/balloonshop
Кажется, что событие click запускается на сервере, но при локальной отладке.
7 ответов
Я думаю LinkButton
вообще огонь OnClick
событие. Может быть, метод AddToCartButton_Click1()
перенаправляет на неправильный URL, пожалуйста, проверьте эту строку:
string productUrl = Link.ToProduct(pd.ProductID.ToString());
string destination = Link.ToPayPalAddItem(productUrl, pd.Name, pd.Price, options);
Response.Redirect(destination);
почему? После нажатия на кнопку Добавить в корзину я получил этот URL:http://www.northarktest.net/edwards/balloonshop/Im-Younger-Than-You-p22/?ProductId=22
теперь, если вы заметили, что в URL отсутствует страница, которая должна иметь что-то вроде: abc.aspx?ProductId=22
.
в случае, если это поможет кому-либо, у меня была аналогичная проблема в том, что мои события щелчка LinkButton (назначенные в коде позади) никогда не срабатывали. Оказывается, поскольку мои кнопки LinkButtons создавались динамически,мне пришлось переместить их из моего события Page_Load() и в событие Page_Init (). После этого события щелчка LinkButton начали работать ... что-то связанное с жизненным циклом страницы и всеми этими забавными вещами.
глядя на ваш код, я не вижу никакой проблемы. Вы можете попробовать следующее:
попробуйте изменить
onclick
методика:OnClick="AddToCartButton_Click1"
toOnClick="AddToCartButton_Click"
. Просто уберите число 1. Сделайте то же самое для вашего метода code-behind.перестроить проект.
если это не работает, перетащите новую кнопку на странице с помощью Visual Studio design view и дважды щелкните кнопку, чтобы создать обработчик событий. Затем добавьте код существующий код из старого события button (
AddToCartButton_Click1
) на новый.
у меня была такая проблема. В моем случае, проблема была в том, что я добавил modalpopup
с валидаторов для полей внутри него. Если есть проверка, которая должна быть выполнена, и эта проверка не выполняется (даже если вы не видите этого, как в моем случае), любая кнопка не вызовет событие, если вы не объявите CausesValidation
свойству false.
извините за другой пост...
Я получил ответ, любезно предоставленный одним из авторов книги... спасибо Андрей Rinea...
в верхней части события Page_load в продукте.аспн добавить:
AddToCartButton.PostBackUrl = Запрос.Url-адрес.AbsoluteUri;
примечание: Я пропустил корзину PayPal и столкнулся с этой проблемой позже в книге при попытке добавить продукты в корзину BalloonShop..
надеюсь, что это помогает!
Я знаю, что это старый вопрос, но, если вы добавите:
AddToCartButton.PostBackUrl = Request.RawUrl;
для загрузки страницы он исправит проблемы с Url-адресом.
У меня была эта проблема Это сработало, если я изменил LinkButton на кнопку, хотя
проблема заключалась в том, что у меня была кнопка PayPal на той же странице, и у нее был атрибут name="submit", который каким-то образом мешал обратной передаче. Я удалил атрибут, и кнопки linkbuttons работали!