Я работаю над добавлением некоторого аналитического кода на наш сайт электронной коммерции.То, что я делаю, - это написание какой-то конструкции javascript в конструкторе строк, а затем установка js в литерал на стороне aspx.Хитрость в том, что я хочу, чтобы этот литерал заполнялся только при нажатии кнопки «Добавить в корзину».Достаточно просто, встроить строку в событие нажатия кнопки и установить буквальный текст правильно?Ну, я попробовал это и не могу заставить его работать.Событию нажатия кнопки все еще необходимо сохранить свои предыдущие действия в дополнение к этому новому.
При тестировании я не вижу установленную строку.Я что-то здесь упускаю?
Вот мой код кнопки на странице aspx вместе с моим литералом, который находится прямо под ним:
<asp:ImageButton ID="btnCartMain" runat="server" ImageUrl="~/Images/Buttons/btn_AddToCartFlat.gif" CommandName="AddToCart" AlternateText="Add to cart" OnClick="GroupedAddToCartClick" ImageAlign="AbsMiddle" />
<asp:Literal ID="litSCscAdd" runat="server"></asp:Literal>
Вот обработчик щелчка (с новой строкой внизу):
protected void GroupedAddToCartClick(object sender, EventArgs e)
{
int itemId = Convert.ToInt32(ddItems.SelectedValue);
ProductItem prodItem = null;
_prod.ProductItems.TryGetValue(itemId, out prodItem);
if (ddShipTo.SelectedValue == string.Empty)
rfName.Enabled = true;
if (ProcessAddToCartClick(ddShipTo.SelectedValue,
ddShipTo.SelectedItem.Text,
Convert.ToInt32(txtQuantity.Text),
prodItem, ddItems.SelectedIndex, string.Empty))
{
btnCartMain.ImageUrl = "~/Images/Buttons/btn_AddedToCart.gif";
}
//---- SITECATALYST -- add to cart event ///
System.Text.StringBuilder sbSCseventscadd = new System.Text.StringBuilder();
sbSCseventscadd.Append(String.Format("<script type=\"text/javascript\">"));
sbSCseventscadd.Append(String.Format("s.events=\"scAdd\""));
sbSCseventscadd.Append("</script>");
this.litSCscAdd.Text = sbSCseventscadd.ToString();
}