从后面的代码中的类访问TextBox和DropDownList值

时间:2012-10-24 21:09:24

标签: c# class asp.net-4.0 code-behind

我知道我缺乏类和继承之间的实现的基础知识

我发现很难理解一件简单的事情:

可以从

后面的代码访问给定的DDlTextBox
int selected = DDLID.SelectedIndex ;

string userInput = TBXID.Text;

现在来自放在代码后面的类:

public static class ControlsValue
{
   public static int UserSel = DDLID.Selected.index;
   public static string UserText = TBXID.Text;
} 

我试图“安排”我的代码,以便我可以在其他一些项目中重复使用

...所以我已将与该类中的代码相关的所有全局变量移动到该类中 而我不能做的是用webControls Values

分配变量

这样做的方法是什么?

更新

我能想到的一种方法是通过参数

public static class ControlsValue
{
   public static void getValues(DropDownList DDLID)
   {
        public static int UserSel = DDLID.Selected.index;
   }
   public static string UserText(TextBox TBXID)
   {
      return TBXID.Text;
   }
} 

1 个答案:

答案 0 :(得分:1)

像这样创建一个不同的类

public class ControlValues{

    private int_dropDownIndex;
    public int DropDownIndex{
         get { return _dropDownIndex; }
         set { _dropDownIndex= value; }
    }

    private string _textBoxValue;
    public string TextBoxValue{
         get { return _textBoxValue; }
         set { _textBoxValue= value; }
    }

    public ControlValues(int dropDownIndex, string textBoxValue){
         this._dropDownIndex = dropDownIndex;
         this._textBoxValue = textBoxValue;
    }
}

您可以在代码后面创建一个实例,如下所示

ControlValues cv= new ControlValues(DDLID.Selected.index, TBXID.Text);

现在您可以访问DropDown索引和文本

cv.DropDownIndex;  
cv.TextBoxValue;

虽然我提供了答案,但请注意:

  • 请记住Web应用程序的无状态特性以及您将如何使用它。
  • 在ASP.NET中,创建一个类实例以保存服务器控件的值是低效的,因为这些控件及其值可以从后面的代码直接访问。使用这种方法将是额外的开销。
  • 如果您认真学习可重用性,我强烈建议您学习面向对象编程的基础知识。一旦掌握了OOP,您就会清楚地看到何时应用OOP原则。