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

C# 在函数或类方法中引用ASP控件,c#,asp.net,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) {

如何在函数或类中引用页面上的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;
}

是的,它应该这样做,假设它位于页面生命周期中的适当点上,这样以后就不会有任何其他问题了。(我不知道ASP.NET生命周期的详细信息

然而,值得一提的是,这里绝对没有理由通过引用来传递它。这表明您没有完全理解在.NET中传递的参数-我建议您阅读-一旦您理解了(以及引用/值类型的区别),所有类型的事情都会变得更容易


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

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

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

写下问题后才想到,没有试过是的,这实际上是ASPX代码隐藏中的
页面加载
事件?您在同一代码隐藏中调用的函数也是相同的吗?这是用于更改任何控件的
内部文本
,还是专门设置
控件的
文本
属性ol?你只需要给你的控件赋予一个
id
属性,然后你就可以通过它的id直接引用它了..我知道,我想创建一个方法,不仅在以后修改文本,而且在类内部。上面的一个只是一个直接的例子,我不知道对象是通过引用传递的default@geocine:它们不是。未传递对象无论如何。引用是按值传递的。请阅读我在文本中链接到的文章。@js我目前正在阅读你的文章,但是检查了我的更新帖子,请解释它工作的原因。