我希望将值从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;} }
我很遗憾这里有一些简单的东西,但是我已经在这几个星期的时间里坚持这个问题了,这让我在试图让这个项目完成的过程中让我站起来,所以你可以给予任何帮助非常感谢。
答案 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;} }