webForumDet fria alternativet

Uppdatera TreeView (NodeMoved)

1 svar · 438 visningar · startad av Arne

ArneMedlem sedan maj 2000267 inlägg
#1

Har kört fast med att uppdatera min TreeView när jag flyttar noderna. TreeViewn hämtar datan från MS Sql 2008 server.

Det jag vill åstadkomma är att när jag drar en node med tillhörande ChildNodes till den node jag kallar ”Papperskorgen” (som har NodeId 1), vill jag att den noden och tillhörande ChildNodes uppdateras med DeleteOk = True
t.ex.

If NodeId = 1 Then
MyCommand.Parameters("@DeleteOk ").Value = True
Else
MyCommand.Parameters("@DeleteOk ").Value = False
End If

Så här ser nodstrukturen ut i TreeView:
tree.gif

Sql datan för Test noderna kan se ut så här:
sqltree.gif

Detta är tyvärr för avancerat för mig och skulle bli glad över alla tänkbara förslag…

Min nuvarande NodeMoved utan DeleteOk ser ut så här.

Protected Sub TreeView1_NodeMoved(ByVal sender As Object, ByVal e As ComponentArt.Web.UI.TreeViewNodeMovedEventArgs)

        Dim UpdateCmd As String = "UPDATE bjorkis SET ParentNodeId = @ParentNodeId, ImageUrl = @ImageUrl, uppdaterad = @uppdaterad WHERE NodeId = @id"
        MyCommand = New SqlCommand(UpdateCmd, MyConnection)

        MyCommand.Parameters.Add(New SqlParameter("@ParentNodeId", SqlDbType.Int, 4))
        If e.Node.ParentNode Is Nothing Then
            MyCommand.Parameters("@ParentNodeId").Value = DBNull.Value
        Else
            MyCommand.Parameters("@ParentNodeId").Value = e.Node.ParentNode.ID
        End If

		MyCommand.Parameters.Add(New SqlParameter("@ImageUrl", SqlDbType.VarChar, 50))
        If e.Node.ParentNode Is Nothing Then
			MyCommand.Parameters("@ImageUrl").Value = "root.gif"
		Else
			MyCommand.Parameters("@ImageUrl").Value = "subpage.gif"
		End If

        MyCommand.Parameters.Add(New SqlParameter("@uppdaterad", SqlDbType.SmallDateTime, 4))
        MyCommand.Parameters("@uppdaterad").Value = Now

        MyCommand.Parameters.Add(New SqlParameter("@id", SqlDbType.Int, 4))
        MyCommand.Parameters("@id").Value = e.Node.ID

        Try
            MyConnection.Open()
            MyCommand.ExecuteNonQuery()

        Catch exc As SqlException
            ' felhantering här

        Finally
            MyCommand.Dispose()
            MyConnection.Close()
            TreeView1.Nodes.Clear()
            buildTree()

        End Try

    End Sub
ArneMedlem sedan maj 2000267 inlägg
#2

Inga förslag?

Någon som har orkat titta på mitt problem, hoppas på response :)

254 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
129 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
126 ms — hämta tråd, inlägg och bilagor (db)