2016-08-15 45 views
0

我嘗試在Report.aspx中顯示水晶報表。所以這第一個我創造一流「``report_class`和I類創建函數是這樣的:在另一個網絡表單中傳遞HTML標識

使用cookie

在webform2我嘗試這個

public static bool setCookiesValue(Page page, string cookiesName, string cookiesValue, ref string ermsg) 
    { 
     if (cookiesValue.Trim().Length < 1) 
     { 
      ermsg = "cookies empty"; 
      return false; 
     } 


     HttpCookie clearCookies = page.Request.Cookies[cookiesName]; 
     clearCookies[cookiesName] = cookiesValue; 
     clearCookies.Expires = DateTime.Now.AddDays(1d); 
     page.Response.Cookies.Add(clearCookies); 
     return true; 
    } 



    public static String getCookies(Page page, string cookiesName) 
    { 
     try 
     { 
      HttpCookie GetCookies = page.Request.Cookies[cookiesName]; 
      return GetCookies[cookiesName].ToString(); 
     } 
     catch (Exception er) 
     { 

      return string.Empty; 
     } 

    } 

然後點擊鏈接

protected void Button6_Click(object sender, EventArgs e) 
    { 
     try 
     { 


     string datef = string.Empty; 
     setCookiesValue(this, "fromdate", "todate","regiondrop", ref ret); 
      report_class r = new report_class(); 
      Report_Detail report = new Report_Detail(); 
      Response.Redirect("Reports.aspx"); 

     } 
     catch 
     { 
      Label4.Visible = true; 
     } 
    } 

和reports.aspx

protected void Page_Load(object sender, EventArgs e) 
     { 


      Report_Detail report = new Report_Detail(); 
      report_class r = new report_class(); 
      string date_f = getCookies(this, "fromdate"); 
      string date_t = getCookies(this, "todate"); 
      string drop_r = getCookies(this, "regiondrop"); 
      r.Bindreport_class(report, Convert.ToDateTime(date_f), 
      Convert.ToDateTime(date_t), Convert.ToString(drop_r)); 
      CrystalReportViewer1.ReportSource = report; 
      CrystalReportViewer1.DataBind(); 


     } 

但本次車展錯誤

Error 8 No overload for method 'setCookiesValue' takes 5 arguments 
Error 3 The name 'getCookies' does not exist in the current context 
+0

你的意思是,你需要一個參數在CR?舉個例子.. –

+0

cr ????????????????? – user6628729

+0

Crystal Report好友..這意味着CR –

回答

0

你只需要例如從Form1中傳遞值到窗口2:

這樣來做:

FORM2

public partial class Form2 : Form 
    { 
     public static Label lblvar= null; 
     public Form2() 
     { 
      InitializeComponent(); 
     } 

     private void Form2_Load(object sender, EventArgs e) 
     { 

     } 
    } 

FORM1 :

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      Form2.lblvar = lblvarinform1; 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      lblvarinform1.Text = txtdatepicker.Text; 
      Form2.lblvar.Text = lblvarinform1.Text; 
     } 
    } 

使用Cookie:

public static bool setCookiesValue(Page page, string cookiesName, string cookiesValue,ref string ermsg) 
     { 
      if (cookiesValue.Trim().Length < 1) 
      { 
       ermsg = "cookies empty"; 
       return false; 
      } 


       HttpCookie clearCookies = page.Request.Cookies[cookiesName]; 
       clearCookies[cookiesName] = cookiesValue; 
       clearCookies.Expires = DateTime.Now.AddDays(1d); 
       page.Response.Cookies.Add(clearCookies); 
       return true; 
     } 



public static String getCookies(Page page,string cookiesName) 
     { 
      try 
      { 
       HttpCookie GetCookies = page.Request.Cookies[cookiesName]; 
       return GetCookies[cookiesName].ToString(); 
      } 
      catch (Exception er) 
      { 

       return string.Empty; 
      } 

     } 

使用上面的函數:

組Cookie新的價值:

string ret = string.Empty; 
     setCookiesValue(this,"yourcookiesname","thisisyourdatevaue_or_any",ref ret); 

以另一種形式得到的cookie值:

string getval = getCookies(this,"yourcookiesname"); 
+0

另一種方式來傳遞這個變量,你也可以使用cookie來存儲變量。 –

+0

好吧我使用會議和會議完美的作品對我來說 – user6628729

+0

要小心使用會話,比會話更好地使用cookie。會話存儲值可供正在訪問您的站點的其他用戶使用。 –

相關問題