如何调用 ascx 委托给其他 ascx btn 点击?

发布于 2024-11-30 15:51:19 字数 801 浏览 2 评论 0原文

我有 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 btn 上调用此委托单击

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

    } 

请帮助我

I have ascx suppose A.ascx in which i am writing a delegate on OnInit() like this

  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);
                               };

Now I want to call this delegate on B.ascx btn click

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

    } 

Please help me in this

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

残龙傲雪 2024-12-07 15:51:19

让你的委托成为一个正确的方法。

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);
}

确保控件的 ID 设置为在代码隐藏中为其生成成员:

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

然后从 B(父)控件调用它:

protected void btnHdnAnswer_Click(object sender, EventArgs e)
{
    MyBControl.Update();
} 

Make your delegate a proper method.

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);
}

Make sure the Id of your control is set to generate a member for it in the code-behind:

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

Then call it from your B (parent) control:

protected void btnHdnAnswer_Click(object sender, EventArgs e)
{
    MyBControl.Update();
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文