将文本框值从用户控件文件传递到另一个类文件

时间:2014-03-10 10:07:06

标签: c# asp.net

我希望将值从ascx.cs用户控制文件传递到我项目中的另一个类文件。我需要能够从用户控件获取动态文本框的值,以便能够将它们放入数据库中。

这是我到目前为止所拥有的

用户控制文件

public void Page_Load(object sender, EventArgs e)
    {
        ItemBox.Text = Request.Form[ItemBox.UniqueID];
        NumberBox.Text = Request.Form[NumberBox.UniqueID];
        DescriptBox.Text = Request.Form[DescriptBox.UniqueID];


    }

其他类文件

 ViewState[VIEWSTATEKEY] = int.Parse(ViewState[VIEWSTATEKEY].ToString()) + 1;
        LoadPageControls();
        RowID ++;

        string box1value = Request.Form[ItemBox.Text];
        string box2value = Request.Form[NumberBox.UniqueID];
        string box3value = Request.Form[DescriptBox.UniqueID];

        string sConnection = generic database address;

我见过其他人使用get方法提取数据。但我无法正确使用语法并且不断出错。

我尝试了这个,因为我在这里看到它C# Get textBox value from another class并认为它会起作用,但没有快乐

string box1value{ get {return ItemBox.Text;} }

我很遗憾这里有一些简单的东西,但是我已经在这几个星期的时间里坚持这个问题了,这让我在试图让这个项目完成的过程中让我站起来,所以你可以给予任何帮助非常感谢。

3 个答案:

答案 0 :(得分:1)

试试这个,这不是最好的选择,但我会工作

**用户控制文件

public void Page_Load(object sender, EventArgs e)
{
    Session["ItemBox"] = Request.Form[ItemBox.UniqueID];
    Session["NumberBox"] = Request.Form[NumberBox.UniqueID];
    Session["DescriptBox"] = Request.Form[DescriptBox.UniqueID];
}

**其他类文件

var ItemBox = (Session["ItemBox"] ?? "").ToString();
var NumberBox= (Session["NumberBox"] ?? "").ToString();
var DescriptBox= (Session["DescriptBox"] ?? "").ToString();

答案 1 :(得分:0)

您不能在其他类文件中使用Request.Form[]。最好使用存储值所需的多个属性创建另一个实体类。在aspx.cs中创建该类的对象并填充这些值。现在在从另一个类调用方法时传递此对象。

你运行过你的代码吗?除了你的aspx.cs文件之外,任何类文件都不应该访问ViewState

答案 2 :(得分:0)

您的媒体资源box1value目前为private,因为您尚未提及任何访问修饰符。您应该为其添加public修饰符:

public string box1value{ get {return ItemBox.Text;} }