【问题标题】:pass control ID to custom method on text changed event将控件 ID 传递给文本更改事件的自定义方法
【发布时间】:2013-03-05 15:48:46
【问题描述】:

我想编写一个方法来处理 web 表单上多个服务器控件的文本更改事件。当文本更改事件触发时,我需要将控件 ID 传递给我的方法。换句话说,当我的方法被调用时,我必须弄清楚是哪个控件导致了文本更改事件的触发。这可能吗?通常我会使用命令参数属性,但我认为这不适用于文本框和列表框控件。有什么建议么?

【问题讨论】:

标签: c# asp.net webforms


【解决方案1】:

在TextChanged函数中使用Sender(第一个)参数:

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
        TextBox tb = sender as TextBox;

        if (tb != null)
        {
            string id = tb.ID;
        }
 }

【讨论】:

  • 嗯,我猜我让这变得比它需要的更复杂
【解决方案2】:

您的事件处理程序有两个参数:object sender, eventargs e

sender 参数就是您要查找的参数。它实际上是对调用事件处理程序的对象的引用,您只需将其转换为正确的类型。

 TextBox fooBar = sender as TextBox;

如果你愿意,你可以得到这个名字:

 if(fooBar.Name == "someName") { ... }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多