簡體   English   中英

在webforms中使用不同類中的變量c#

[英]Use a variable in different classes in webforms c#

我認為,我的東西很簡單。

我有以下代碼:

public void Button1Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)
    {
        if (FileUpload1.PostedFile.ContentType == "text/xml")
            {

                    string filename = Path.GetFileName(FileUpload1.FileName);
                    FileUpload1.SaveAs(Server.MapPath("~/") + filename);
                    StatusLabel.Text = "Upload status: File uploaded!";

                    DataSet ds = new DataSet();
                    ds.ReadXml((Server.MapPath(filename)));
                    GridView1.DataSource = ds;
                    GridView1.DataBind();
            }
            else
                StatusLabel.Text = "Only xml files are accepted!";

    }
}

public void Button2_Click1(object sender, EventArgs e)
{

}    

我想要的是用戶在button2中執行此代碼

                    DataSet ds = new DataSet();
                    ds.ReadXml((Server.MapPath(filename)));
                    GridView1.DataSource = ds;
                    GridView1.DataBind();

我的問題是變量文件名在外面不可用

public void Button1Click(object sender, EventArgs e)

在此先感謝您的幫助! 克里斯

你可以將變量保存在頁面ViewState中,如下所示:

private string fileName
{
    get { return ViewState["fileName"] != null ? (string)ViewState["fileName"] : String.Empty; }
    set { ViewState["fileName"] = value; }
}

上傳文件時將文件名保存到SessionViewState

public void Button1Click(object sender, EventArgs e)
{
    ..
    string filename = Path.GetFileName(FileUpload1.FileName);
    ...
    Session["filename"]=filename;
}

Button2單擊處理程序中的代碼,

public void Button2_Click1(object sender, EventArgs e)
{
 if(Session["filename"]!=null)
 { 
  string filename=Session["filename"].ToString();
  DataSet ds = new DataSet();
  ds.ReadXml((Server.MapPath("~/" + filename)));
  GridView1.DataSource = ds;
  GridView1.DataBind();
}  

實際上你可以在這里擁有大量的變種:

  1. 您可以從文件上傳控件中獲取此值,只需使用與Button1Click中使用的方法相同的方法:

     string filename = Path.GetFileName(FileUpload1.FileName); 
  2. 更准確地說,是按照之前的說法存儲在ViewState中。

  3. 如果要在其他頁面中使用它,只需將其保存到會話中即可。

暫無
暫無

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

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