簡體   English   中英

在PageLoad(if(!Page.IsPostBack))之外訪問字符串值

[英]Access a string value outside PageLoad(if(!Page.IsPostBack))

我想訪問PageLoadif(!Page.IsPostBack)塊之外的字符串值。

我已將string sap1聲明string sap1 public

我的代碼是

     public partial class WebForm4 : System.Web.UI.Page
     {
    DateTime d = DateTime.Now;
    string sap = "";
    string sap1;
    protected  void Page_Load(object sender, EventArgs e)
    {

        //DateTime d = DateTime.Now;

        TextBox1.Text = d.ToShortDateString(); 
        if (!Page.IsPostBack)
        {
            string q = d.ToShortDateString();
            string[] separators = { "-", "/" };
            string s = d.ToShortDateString();
            string[] words = s.Split(separators, StringSplitOptions.RemoveEmptyEntries);
            foreach (var word in words)
                sap = sap + word;

            string constr = ConfigurationManager.ConnectionStrings["myString"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {


                sap1 = "D" + sap;
                string query = "create table " + sap1 + " (Name varchar(50),ContentType 
       nvarchar(200),Data varbinary(MAX));";

                using (SqlCommand cmd = new SqlCommand(query))
                {

                    cmd.Connection = con;
                    con.Open();
                    cmd.ExecuteNonQuery();
                    con.Close();
                }
            }

            AddNewRow();
        } 
       protected void Button1_Click(object sender, EventArgs e)
       {
         Response.Write(sap1);
       }
    }

我想在PageLoad之外訪問sap1的值。 我想用它插入查詢。

您必須在Page_Load方法之外對此屬性進行一些聲明

private string sap1;

然后您就可以在整個課程中訪問它。 但是要注意ASP.NET頁面的生命周期。 只有在Page_Load之后,您才會擁有sap1及其值。 在頁面生命周期的早期階段,它當然為空。

問題是if檢查if(!Page.IsPostback) 您需要在每個PostBack上計算sapsap1 因此,當您單擊按鈕時它將可用。

只需刪除條件if(!Page.IsPostback)

您需要在會話中存儲sap1的值

Session["sap1"] = sap1;

然后在需要時檢索它:

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Write(Session["sap1"]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM