我想访问PageLoad
中if(!Page.IsPostBack)
块之外的字符串值。
我已申报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
的值。我想用它插入查询。
您需要将sap1的值存储在会话中
Session["sap1"] = sap1;
然后在需要时取回:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(Session["sap1"]);
}
您必须在Page_Load方法之外声明此属性
private string sap1;
然后你可以在全班同学中访问它。但是要小心ASP.NET页面的生命周期。只有在Page_Load之后,才会有值为的sap1。在页面生命周期的早期阶段,它当然是空的。
问题在于if检查if(!Page.IsPostback)
。您需要在每个PostBack
上计算sap
和sap1
。因此,当你点击按钮时,它将可用。
只需删除条件if(!Page.IsPostback)
。