Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C语言中使用全局变量#_C#_Asp.net_Global Variables - Fatal编程技术网

C# 如何在C语言中使用全局变量#

C# 如何在C语言中使用全局变量#,c#,asp.net,global-variables,C#,Asp.net,Global Variables,这是我的密码 public partial class Books : System.Web.UI.Page { String Book_CategoryName = ""; String Book_SubCategoryName = ""; protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Book_

这是我的密码

public partial class Books : System.Web.UI.Page
{
    String Book_CategoryName = "";
    String Book_SubCategoryName = "";

   protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Book_CategoryName = "Education";
        }
    }
    public void BookDataLinkButton_Click(object sender, EventArgs e)
    {
        Response.Write("Data Found :: "+Book_CategoryName);
    }

}
在这段代码中,我使用全局变量,在页面上设置Book\u CategoryName变量的值,并尝试点击链接按钮。但我无法接受“教育”。当我运行此代码时,它会显示找到的数据:

如何获取Book_CategoryName变量的值


请尝试帮助我解决此问题。

这是因为为每个web请求调用的页面对象不同。因此,当您在页面加载中初始化
Book\u CategoryName
时,它仅对该请求有效,并且该值在下一个请求中丢失,即调用BookDataLinkButton\u Click时

在您的情况下,您可以在声明期间简单地初始化变量,如下所示:

String Book_CategoryName = "Education";
您可以查看以了解更多信息

或者,您可以使用
ViewState
而不是“全局变量”


这是因为调用的页面对象对于每个web请求都是不同的。因此,当您在页面加载中初始化
Book\u CategoryName
时,它仅对该请求有效,并且该值在下一个请求中丢失,即调用BookDataLinkButton\u Click时

在您的情况下,您可以在声明期间简单地初始化变量,如下所示:

String Book_CategoryName = "Education";
您可以查看以了解更多信息

或者,您可以使用
ViewState
而不是“全局变量”


这是因为调用的页面对象对于每个web请求都是不同的。因此,当您在页面加载中初始化
Book\u CategoryName
时,它仅对该请求有效,并且该值在下一个请求中丢失,即调用BookDataLinkButton\u Click时

在您的情况下,您可以在声明期间简单地初始化变量,如下所示:

String Book_CategoryName = "Education";
您可以查看以了解更多信息

或者,您可以使用
ViewState
而不是“全局变量”


这是因为调用的页面对象对于每个web请求都是不同的。因此,当您在页面加载中初始化
Book\u CategoryName
时,它仅对该请求有效,并且该值在下一个请求中丢失,即调用BookDataLinkButton\u Click时

在您的情况下,您可以在声明期间简单地初始化变量,如下所示:

String Book_CategoryName = "Education";
您可以查看以了解更多信息

或者,您可以使用
ViewState
而不是“全局变量”


在每次回帖时,都会重新创建页面(Books)的实例,因此在单击按钮后将无法获得Book_CategoryName的值。 一种方法是将变量存储在ViewState中

private const string KEY_Book_CategoryName = "Book_CategoryName";
public String Book_CategoryName
{
    get
    {
        return ViewState[KEY_Book_CategoryName] as string;
    }
    set
    {
        ViewState[KEY_Book_CategoryName] = value;
    }
}

另一种方法是将值存储在页面的隐藏字段中。这样做的目的是将值存储在回发期间可以持久保存的某个位置。

在每次回发时,都会重新创建页面(书籍)的实例,因此在单击按钮后,您将无法获得Book_CategoryName的值。 一种方法是将变量存储在ViewState中

private const string KEY_Book_CategoryName = "Book_CategoryName";
public String Book_CategoryName
{
    get
    {
        return ViewState[KEY_Book_CategoryName] as string;
    }
    set
    {
        ViewState[KEY_Book_CategoryName] = value;
    }
}

另一种方法是将值存储在页面的隐藏字段中。这样做的目的是将值存储在回发期间可以持久保存的某个位置。

在每次回发时,都会重新创建页面(书籍)的实例,因此在单击按钮后,您将无法获得Book_CategoryName的值。 一种方法是将变量存储在ViewState中

private const string KEY_Book_CategoryName = "Book_CategoryName";
public String Book_CategoryName
{
    get
    {
        return ViewState[KEY_Book_CategoryName] as string;
    }
    set
    {
        ViewState[KEY_Book_CategoryName] = value;
    }
}

另一种方法是将值存储在页面的隐藏字段中。这样做的目的是将值存储在回发期间可以持久保存的某个位置。

在每次回发时,都会重新创建页面(书籍)的实例,因此在单击按钮后,您将无法获得Book_CategoryName的值。 一种方法是将变量存储在ViewState中

private const string KEY_Book_CategoryName = "Book_CategoryName";
public String Book_CategoryName
{
    get
    {
        return ViewState[KEY_Book_CategoryName] as string;
    }
    set
    {
        ViewState[KEY_Book_CategoryName] = value;
    }
}

另一种方法是将值存储在页面的隐藏字段中。其思想是将值存储在回发期间可以持久化的地方。

如下更改变量

static String Book_CategoryName = "";    
static String Book_SubCategoryName = "";

如下所示更改变量

static String Book_CategoryName = "";    
static String Book_SubCategoryName = "";

如下所示更改变量

static String Book_CategoryName = "";    
static String Book_SubCategoryName = "";

如下所示更改变量

static String Book_CategoryName = "";    
static String Book_SubCategoryName = "";

我也检查这个代码没有!Page.IsPostBack,但结果仍然相同。字符串为空请注意,您发布的代码不显示任何全局变量(
static
properties in C#)。可能示例中缺少某些内容,或者您在其他意义上使用了“全局”。@AlexeiLevenkov他最有可能的意思是将“全局变量”作为类变量。@JWLim显然您的意思是“如何使数据进入会话状态并在下一个请求时读取”。。。很难知道为什么有人说了些什么——OP的一点澄清可能有用……是的,我指的是作为类变量的全局变量。谢谢你给我宝贵的时间。现在问题是通过使用静态变量解决的。我还检查了这段代码,没有!Page.IsPostBack,但结果仍然相同。字符串为空请注意,您发布的代码不显示任何全局变量(
static
properties in C#)。可能示例中缺少某些内容,或者您在其他意义上使用了“全局”。@AlexeiLevenkov他最有可能的意思是将“全局变量”作为类变量。@JWLim显然您的意思是“如何使数据进入会话状态并在下一个请求时读取”。。。很难知道为什么有人说了些什么——OP的一点澄清可能有用……是的,我指的是作为类变量的全局变量。谢谢你给我宝贵的时间。现在问题是通过使用静态变量解决的。我还检查了这段代码,没有!Page.IsPostBack,但结果仍然相同。字符串为空请注意,您发布的代码不显示任何全局变量(
static
properties in C#)。可能示例中缺少某些内容,或者您在其他意义上使用了“全局”。@AlexeiLevenkov他最有可能的意思是将“全局变量”作为类变量。@JWLim显然您的意思是“如何使数据进入会话状态并在下一个请求时读取”。。。很难知道为什么有人说了些什么——OP的一点澄清可能有用……是的,我指的是作为类变量的全局变量。谢谢你给我的礼物