bc.aspx.cs
namespace g.bcgsbx
{
public partial class bc : System.Web.UI.Page
{
string a;
protected void Button1_Click(object sender, EventArgs e)
{
a = "aaaaaaaa";}
protected void Button2_Click(object sender, EventArgs e)
{
string k = a;//此处调用a时,a为null}
希望两个按钮事件能公用a的值。按钮1修改a的值后,按钮2可以直接调用。
用静态变量的话,当多用户操作时,多用户都公用a
如果用户1修改了a的值,用户2又修改了a,此时用户1再用时,a已经是用户2的值了
我是需要每个用户各用各啊,用户2无法修改用户1的值。
你声明时给a赋值,没有赋值就是空的。
用字典,key是用户ID,value是a
用Session,这样就是自己操作自己的a值,静态是所有用户都可以操作,类似application了
protected void Button1_Click(object sender, EventArgs e)
{
Session["a"]= "aaaaaaaa";}
protected void Button2_Click(object sender, EventArgs e)
{
string k =Session["a"]==null?null:Session["a"].ToString();//注意判断session是否设置过
}
直接操作按钮就行,干嘛用变量
请一个全局变量就行吧,如果是个不变的值
首先你的变量a的取值来源是哪里,我看你是写死的
你说每个用户可以更改a的值,说明来源有两种情况:
1、通过前端传递过来的
单击Button会同时触发这两个事件,但先执行Click,后执行Command,在button控件中加上参数属性 CommandArgument='xxx',把a的值给上
在click响应函数中可以用以下代码获得传递的参数
protected void Button_Click(object sender, EventArgs e)
{
Button Btn = sender as Button;
string commandArgument = Btn.CommandArgument.ToString();
}
2、后台根据登陆用户相关信息取过来的
这种直接后台直接取,跟其他用户没有关系
如果是要多个提交都使用该变量的话,建议你在页面上加个Hidden,设置runat=“server”,后台就可以使用这个hidden的值来使用了
后台很简单的
hd.Value="aaa";
两个方法
第一种:把变量a设为static,两个函数就可以公用,但是设太多static很耗资源
第二种:是asp特有的方法,在.aspx里面加一个控件,如下:
后台在.cs文件中就可以直接使用该控件的ID获取值了,如:aValue.Value