public partial class Unit_Proc : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //判断session是否超时
            if (ObjectValidator.SessionTimeOut(Page))
            {
                return;
            }
            if (!IsPostBack)
            {
                PageState();                OperateLog.WriteSysLog(Page, "访问" + " 用户信息协查责任单位工单处理" + "");
            }
        }        protected void rbtn_state_SelectedIndexChanged(object sender, EventArgs e)
        {
            PageState();
        }        protected void btn_Search_Click(object sender, EventArgs e)
        {
            PageState();
        }        protected void rbtn_infosource_SelectedIndexChanged(object sender, EventArgs e)
        {
            PageState();
        }
        public static string GetSearchXml = string.Empty;
        public string ReturnSearchString()
        {
            //判断session是否超时
            if (ObjectValidator.SessionTimeOut(Page))
            {
                return "";
            }
            DataSet ds = new DataSet();
            ds = (DataSet)Session["ds"];
            string Depart = ds.Tables[0].Rows[0]["depart"].ToString();
            ArrayList al = new ArrayList();
            al.Add(GetNXML.GetSCHXML("Manage_State", "5", "=", "and"));
            al.Add(GetNXML.GetSCHXML("back_state", "0", "=", "and"));
            al.Add(GetNXML.GetSCHXML("Certificat_state", rbtn_state.SelectedValue, "=", "and"));
            al.Add(GetNXML.GetSCHXML("IP", tb_IP.Value, "like", "and"));
            al.Add(GetNXML.GetSCHXML("domain", tb_domain.Value, "like", "and"));
            al.Add(GetNXML.GetSCHXML("linkcode", tb_code.Value, "like", "and"));
            if (tb_unit.Value.Length == 0)
            {
                al.Add(GetNXML.GetSCHXML("unit_name", Depart, "=", "and"));            }
            else
            {
                al.Add(GetNXML.GetSCHXML("unit_name", tb_unit.Value.Trim(), "like", "and"));
            }
            return GetNXML.GetLookXML(al, "0");
        }
        private void PageState()
        {
            object _object = new object();
            lock (_object)
            {
                GetSearchXml = ReturnSearchString();
            }
            switch (rbtn_state.SelectedValue)
            {
                case "1":
                    ifr.Attributes.Add("src", "Proc.aspx");  //待派发
                    ifr.Attributes.Add("onload", "reinitIframe('ifr')");
                    break;
                case "2":
                    ifr.Attributes.Add("src", "Procing.aspx");  //处理中ing
                    ifr.Attributes.Add("onload", "reinitIframe('ifr')");
                    break;
                case "3":
                    ifr.Attributes.Add("src", "NoteUser.aspx");  //已完成
                    ifr.Attributes.Add("onload", "reinitIframe('ifr')");
                    break;
                default:
                    break;
            }
        }
这样子  在其它 页面调用 GetSearchXml   这个值。用户访问多的时候会不会有问题。
我知道 asp.net 页面传值很多种。请大牛指点指点3Q

解决方案 »

  1.   

    会有问题
    static变量是整个继承只有一份,也就是所有用户使用同一个变量。
      

  2.   

    如果我用lock 这样子会不会有问题喃。
      

  3.   

    你这个GetSearchXml 属性是当前页面的成员,其他页面应该访问不到另外,static类型所有用户共享的,lock也解决不了,除非你就像共享这些数据
      

  4.   


    其它页面可以访问的。。 公共变量的哇。  可以用。Unit_Proc.GetSearchXml  这样子就可以访问了。我页面时框架页面。。里面有一个iframe 控件。 它根据框架页面不同的条件去加载不同的页面。加载的页面根据框架页面的条件来过滤出显示的数据。。
    本来我想用session 保存数据的。 但是又怕数据丢失。。纠结啊  。 大牛 
      

  5.   

    你可以地址栏传值
    再者说,session 想丢失也没那么容易,除非你代码有问题
      

  6.   

    你使用static也会丢失的,跟session 一样的数据不多可以使用Cookie啊
      

  7.   

    算了 我还是用 。 session 保存值。。