Har en TreeView som jag hämtar värden till noderna från en databas ingen som har något ... kanske ett tips elle r så så här i juletid Använd följande kodsnuttar:Keep state vid byte av sida.
Min fråga lyder, hur skall jag gå tillväga för att menyn skall, "keep state" , vid byta av sidan? Samt kan jag på något sätt få den att expandera när man klickar på länken istället för pluset?
I filen navigation_pages.ascx.vb
Imports System.Data
Imports System.Data.OleDb
Namespace axgui
Partial Class navigation_pages
Inherits System.Web.UI.UserControl
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
End Sub
Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As TreeNodeEventArgs)
Dim connectionString As String = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("_db/information.mdb") & ";"
Dim con As New OleDbConnection(connectionString)
Dim cmd As New OleDbCommand("SELECT * FROM PageTable WHERE PageParent=@PageParent ORDER by PageID", con)
cmd.Parameters.AddWithValue("@PageParent", e.Node.Value)
con.Open()
Try
Dim dtr As OleDbDataReader = cmd.ExecuteReader()
While dtr.Read()
Dim newNode As New TreeNode()
newNode.PopulateOnDemand = True
newNode.Text = dtr("PageTitle").ToString()
newNode.Value = dtr("PageID").ToString()
Select Case (dtr("PageFolder"))
Case "page"
newNode.ImageUrl = "/axgui/_img/page.gif"
newNode.ToolTip = "Webbsida"
Case "form"
newNode.ImageUrl = "/axgui/_img/form.gif"
newNode.ToolTip = "Formulär"
End Select
newNode.NavigateUrl = "?id=" & dtr("PageID").ToString()
e.Node.ChildNodes.Add(newNode)
End While
Finally
con.Close()
End Try
End Sub
End Class
End Namespace
I filen navigation_pages.ascx
<%@ Control Language="vb" AutoEventWireup="false" Inherits="axgui.navigation_pages" CodeFile="navigation_pages.ascx.vb" %>
<asp:TreeView EnableClientScript="true" PopulateNodesFromClient="true" id="TreeView1" ImageSet="BulletedList" ShowLines="false" ExpandDepth="1" OnTreeNodePopulate="TreeView1_TreeNodePopulate" Runat="Server">
<SelectedNodeStyle BackColor="#CCCCCC" />
<NODES>
<asp:TreeNode PopulateOnDemand="true" Value="0" Text="Root" ImageUrl="/axgui/_img/root.gif" ToolTip="Rootsystem folder"></asp:TreeNode>
</NODES>
</asp:TreeView>
Sv: Keep state vid byte av sida.
Sv: Keep state vid byte av sida.
<code>
// Spara ett objekt i en sessionvariabel
Session["MittVariabelNamn"] = mittObjekt;
// Hämta det genom att anropa Session-objektet och skicka med ditt variabelnamn
mittObjekt = Session["MittVariabelNamn"];
</code>
Varje användare har egna Sessionobjekt, vilket gör att du kan lagra staten där för varje användare. Tänk på att inte lagra stora mängder data där, eftersom det tär på serverns RAM-minne.
Hoppas det kan hjälpa dig en bit på vägen. God Jul!