web窗体页面之间的传值
原创
©著作权归作者所有:来自51CTO博客作者小谷姐姐的原创作品,请联系作者获取转载授权,否则将追究法律责任
最近在项目中用到了C#中的web窗体,但是在web窗体中需要两个页面之间进行参数的传递,开始打算像写C#一样定义一个静态变量进行参数的传递,但是发现web中调不到,还不能实例化。然后就找到了这样的方法……
我们需要两个页面的参数传递,如下:
![web窗体页面之间的传值_web](https://s2.51cto.com/images/blog/202212/23100148_63a50c0ca336696221.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
![web窗体页面之间的传值_服务器_02](https://s2.51cto.com/images/blog/202212/23100148_63a50c0ccdbfc22310.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
上图中:图1中的时间参数,可以传到图2中的文本框中。
什么是session?
服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每 个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用 户的唯一身份。
目录
解决方法
把
protected void butSubmit_Click(object sender, EventArgs e)
{
//把所有时间进行进遍历,把选中的时间放在一个集合中
List<string> s = new List<string>();
foreach (var item in form1 .Controls)
{
if (item is CheckBox)
{
if (((CheckBox)item).Checked == true)
{
CheckBox box = item as CheckBox;
s.Add(box.Text);
}
}
}
s.First();//选取的第一个时间
//按照字符串的长度进行切割
int i = 6;//选取前6位
string j = s.First().Substring(0, i);//截取后的字符串
//同理,截取后六位的长度
s.Last();//选取的最后一个时间
string k = s.Last().Remove(0, i);//截取后的字符串
string str = j +k;//连接所选中的字符串
Session["st"] = str;
Response.Redirect("MeetingApproval.aspx");
}
把图1所选择的时间截取下来。
截取后把值传到图2的窗体,进行接受,也是利用session
//显示会议时间
this.MeetingTime.Text = Session["st"].ToString();
Session.Remove("st");
这样就可以进行实现两个窗体的传值。