[英]Access a string value outside PageLoad(if(!Page.IsPostBack))
我想訪問PageLoad
中if(!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
上計算sap
和sap1
。 因此,當您單擊按鈕時它將可用。
只需刪除條件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.