在函数或类方法中引用ASP控件

时间:2010-10-07 22:29:42

标签: c# asp.net

如何在函数或类中引用页面上的asp.net控件。

private void PageLoad(object sender, EventArgs e)
{
   //An example control from my page is txtUserName
   ChangeText(ref txtUserName, "Hello World");
} 

private void ChangeText(ref HtmlGenericControl control, string text)
{
   control.InnerText = text;
}

这实际上会改变txtUserName控件的文本吗?

我试过这个并且正在工作

private void PageLoad(object sender, EventArgs e)
{
   ChangeText(txtUserName, "Hello World");
} 

private void ChangeText(TextBox control, string text)
{
   control.Text = text;
}

2 个答案:

答案 0 :(得分:2)

是的,假设它处于页面生命周期中的适当位置,它应该在之后没有其他任何混淆。 (我不知道ASP.NET生命周期的细节。

然而,值得一提的是,绝对没有理由在此引用它。它表明你没有完全理解.NET中的参数传递 - 我建议你阅读my article on it - 一旦你理解了(和参考/值类型的区别),各种事情可能会变得更容易。

当然,如果你已经尝试问题中给出的代码并发现它不起作用,请提供更多详细信息。根据{{​​1}}的类型,甚至可能是 with txtUserName它不会编译,但没有 ref它只会工作。

答案 1 :(得分:0)

除非我遗漏了什么,否则你需要做的就是:

private void PageLoad(object sender, EventArgs e)
{
    txtUserName.Text = "Hello World";
}