0

新手,我需要关于我正在创建的网站的帮助。

我有一个类对用户输入的某些文本进行一些分析,然后该类找到适当的答案并将其发送回文本框。(理论上)

问题是我不知道如何从一个类中控制和访问 default.aspx 页面上的文本框,我得到的只是“需要对象引用非静态字段”。

我在设计器文件中公开了文本框,但仍然没有乐趣。:(

我还阅读了以下内容:如何从解决方案中的类访问 ASP.NET 页面上的控件?,我认为这与我想要实现的目标一致,但我需要逐步说明/如何实现这一目标。

希望有人能指出我正确的方向。

非常感谢,卡尔

这是我添加到 Designer.cs 文件中的代码:

公共全局::System.Web.UI.WebControls.TextBox TextBox3;

    public string MyTextBoxText
    {
        get
        {
            return TextBox3.Text;
        }
        set
        {
            TextBox3.Text = value;
        }
    }

这是我创建的类方法:

公共静态cleanseMe(字符串输入){

        string utterance = input;
        string cleansedUtt = Regex.Replace(utterance, @"[!]|[.]|[?]|[,]|[']", "");
        WebApplication1._Default.TextBox3.text = cleansedUtt;

    }

我可以只返回我知道的 cleansedUtt 字符串,但是我可以在这个类中将此字符串附加到该方法中的所述文本框吗?

我也尝试过这种方式,我编写了一个类,该类接受文本框的名称和要附加到该文本框的字符串。它只能在 default.aspx 页面上工作,并且不能识别不同类中的文本框名称。代码如下:

public class formControl
{
    public static void ModifyText(TextBox textBox, string appendthis)
    {   
        textBox.Text += appendthis + "\r\n";
    } 
4

2 回答 2

2

我建议您不要ControlsTextBoxclass. 无论您的类执行什么功能,将它们转换为接受参数并返回一些值的函数,然后根据该值设置controls值,这将是更有用和更好的做法。

所以现在你有了reusable function可以从任何你想要的页面使用的东西。您不需要为每个文本框都编写它。

这里我给你一个简单的例子

public class Test
{
   public bool IsValid(string value)
   {
       // Your logic 
       return true;
   }
}

现在你可以像这样在你的页面上简单地使用它

  Test objTest = new Test();
  bool result=objTest.IsValid(TextBox1.Text);
  if(result)
  {
    TextBox1.Text="Everything is correct";
  }
  else
  {
    TextBox1.Text="Something went wrong";
  }
于 2013-04-08T16:37:54.000 回答
0

如果您的课程在同一个项目(Web Project)中,则以下内容将起作用:

public class Test
{
    public Test()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    public static void ValidateTextBox(System.Web.UI.WebControls.TextBox txt)
    {
        //validation logic here
        if (txt != null)
            txt.Text = "Modified from class";
    }
}

您可以像这样从您的网络表单中使用它:

protected void Page_Load(object sender, EventArgs e)
{
    Test.ValidateTextBox(this.txt);
}

如果您的班级在不同的(班级项目)中,则需要添加对项目的引用System.Web

于 2013-04-08T16:47:34.330 回答