Страница Asp.net - связь с пользователем - PullRequest
0 голосов
/ 01 сентября 2009

У меня есть страница Product.aspx, там у меня есть пользовательский элемент управления ProductDisplay.ascx, созданный методом перетаскивания.

Теперь, когда в ProductDisplay.ascx нажата кнопка, я хочу вызвать функцию ведения журнала, которая находится в Product.aspx.

Для этого я использовал делегатов

на ProductDisplay.ascx

public delegate void LogUserActivity(ProductService objService);
public event LogUserActivity ActivityLog;

на Product.aspx

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {            
        ProductDisp.ActivityLog += new User_UserControl_ProductDisplayBox.LogUserActivity(LogProduct);

    }
}

Теперь событие нажатия кнопки ProductDisplay.ascx

 protected void imgBtnBuyNow_Click(object sender, ImageClickEventArgs e)
 {        
    if (ActivityLog != null)
    {
        ActivityLog(Product);
    }
    Response.Redirect("~/User/ShoppingCart.aspx");
 }

Моя проблема в том, что всякий раз, когда я нажимаю эту кнопку ActivityLog равен нулю. Почему он равен нулю? Моя идея состоит в том, что, как только я нажимаю эту кнопку, страница отправляет назад, и ее предыдущее состояние теряется. Пожалуйста, помогите мне с указанием причины и решения.

Во-вторых, я хочу покончить с проверкой нуля

**if (ActivityLog != null)**
    {
        ActivityLog(Product);
    }

Я видел некоторый код, который создает экземпляр делегата со значением по умолчанию в тот момент, когда он объявлен, но я не смог его найти. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 01 сентября 2009

Я нашел решение первой проблемы

if (!IsPostBack)
{            
    ProductDisp.ActivityLog += new User_UserControl_ProductDisplayBox.LogUserActivity(LogProduct);

}

Это вызывало проблему. Переместите эту строку

ProductDisp.ActivityLog += new User_UserControl_ProductDisplayBox.LogUserActivity(LogProduct);

из if (! IsPostBack)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...