试图弄清楚如何在潜艇后面的.net代码之间共享一个变量

时间:2016-04-29 22:02:22

标签: asp.net .net vb.net

我想弄清楚如何在itemCommand块中设置ID变量,然后在PagePropertiesChanged块中共享它。

我想知道这是否可行?

这是我想要做的简化示例,

Public Shared ID As Integer

 Private Sub DataListCategories_ItemCommand(source As Object, e As DataListCommandEventArgs) Handles DataListCategories.ItemCommand

    If (e.CommandName.Equals("ClickCategory")) Then

            ID = e.CommandArgument

    End if

 End sub

 Private Sub ListViewGallery_PagePropertiesChanged(sender As Object, e As EventArgs) Handles ListViewGallery.PagePropertiesChanged


    Me.ListViewGallery.DataSource = Dal.GetPhotographyByCategory(ID)
        Me.ListViewGallery.DataBind()

 End Sub

2 个答案:

答案 0 :(得分:0)

您似乎试图在回发之间将ID保存在共享变量(C#中的静态)中,但您必须了解ASP.NET中共享/静态变量的性质。

Lifetime of ASP.NET Static Variable

详细介绍了这一点

您可以使用Session对象来持久保存ID,如:

Session("ID") = ID

或使用类似ASP.NET隐藏字段的内容

<asp:hiddenfield id="IDField" runat="server" value="0"/>

设置如下:

IDField.Value = ID

答案 1 :(得分:0)

我对你说的话感到困惑。我想你是说在html中添加一个隐藏字段,并使用findcontrol在代码后面调用它?

不能以其他方式完成吗?