Как вызвать делегата ascx для другого клика ascx btn? - PullRequest
0 голосов
/ 22 августа 2011

У меня есть ascx, предположим, что A.ascx, в котором я пишу делегата на OnInit (), вот так

  btnUpdate.Click += delegate
                               {
                                   if (MaxLength.HasValue && txtText.Text.Length >= MaxLength.Value)
                                   {
                                       lblError.Text = string.Format(Resources.ErrorMessage_FieldLength, MaxLength);
                                       return;
                                   }
                                   if (Update != null) Update(this, EventArgs.Empty);
                               };

Теперь я хочу вызвать этого делегата на B.ascx, нажав

protected void btnHdnAnswer_Click(object sender, EventArgs e)
    {
       // How to call above delegate..  

    } 

Пожалуйста, помогите мне в этом

1 Ответ

1 голос
/ 23 августа 2011

Сделайте ваш делегат подходящим методом.

btnUpdate.Click += delegate { DoUpdate(); }
...

public void DoUpdate()
{
    if (MaxLength.HasValue && txtText.Text.Length >= MaxLength.Value)
    {
       lblError.Text = string.Format(Resources.ErrorMessage_FieldLength, MaxLength);
       return;
    }
    if (Update != null) Update(this, EventArgs.Empty);
}

Убедитесь, что идентификатор вашего элемента управления настроен для генерации члена для него в коде:

<Project:A runat="server" ID="MyBControl"/>

позвоните с вашего B (родительского) элемента управления:

protected void btnHdnAnswer_Click(object sender, EventArgs e)
{
    MyBControl.Update();
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...