2013-04-08 4 views
0

새내기 여기, 내가 만드는 웹 사이트에 도움이 필요합니다.C# ASP.NET - 클래스를 통해 textbox.text 값 제어/업데이트

나는 사용자가 입력 한 일부 텍스트에 대해 분석을하는 클래스가 있으며 클래스는 적절한 대답을 찾아 텍스트 상자로 다시 보냅니다. (이론적으로)

문제 나는 클래스에서 default.aspx 페이지의 텍스트 상자를 제어하고 액세스 할 수있는 방법을 모르지만 "객체 참조가 정적 필드가 아닌 것이 필요합니다."라는 메시지가 표시됩니다.

저는 디자이너 파일에서 텍스트 상자를 공개했지만 여전히 기쁨이 없었습니다. 내가 달성하기 위해 노력하고있어의 라인을 따라 생각 How can I access the controls on my ASP.NET page from a class within the solution?을, 그러나 나는 이것을 달성하는 방법을 단계별로 설명/단계가 필요

희망의 사람 : :(

나는이를 읽었습니다. .

공공 글로벌 :: System.Web.UI.WebControls : 올바른 방향으로 날 지점 수

많은 감사를 칼

이 내가 designer.cs 파일에 추가 한 코드입니다 . 텍스트 상자 텍스트 상자 삼;

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"; 
    } 
+2

'단계별 설명이 필요합니다.' 그러나 귀하의 코드는 어디에 있습니다. 너 뭐 해봤 니? – Sachin

+0

designer.cs 파일의 것입니다. public global :: System.Web.UI.WebControls.TextBox TextBox3; 공개 문자열 MyTextBoxText { get { return TextBox3.Text; } 세트 { TextBox3.Text = value; } } – KAL

+0

질문을 수정하고 작업중인 것을 볼 수 있도록 코드를 추가하십시오. 일반적으로 designer.cs 파일을 수정하면 안됩니다. – 99823

답변

2

내가 당신 classTextBox 같은 페이지 Controls에 액세스하지 않는 당신을 건의 할 것입니다. 클래스가하는 기능이 무엇이든간에 매개 변수를 받아들이고 값을 반환하는 함수로 변환 한 다음이 값을 기준으로 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"; 
    } 
+0

감사합니다. Sachin, 협조 해 주셔서 감사합니다. :) – KAL

0

같은 페이지에 간단 을 사용할 수 있습니다 웹 프로젝트) 다음 작동합니다 :

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에 대한 참조를 추가 해야합니다.

+0

감사합니다 Hanlet, 도움을 감사드립니다. 나는 그것을 시도하고 알려 드리겠습니다. :) – KAL

관련 문제