我用treeview做了一个树,出现了下面的问题:我想点击左边的+号实现打开子树,点击右边的内容打开超链接。做法如下: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ConnStr = System.Configuration.ConfigurationSettings.AppSettings("kingseer_dbConnectionString").ToString MyConnection = New SqlConnection(ConnStr)
MyConnection.Open()
AddBuildTreeNodes_root()
Sub AddBuildingTreeNodes(ByVal parentNode As TreeNode, ByVal strSql As String)
Dim insert_yhmc As SqlCommand = New SqlCommand(strSql, MyConnection) Dim rs_yhmc As SqlDataReader = insert_yhmc.ExecuteReader
Dim node As New TreeNode
Do While rs_yhmc.Read node = New TreeNode(rs_yhmc.Item("b_name"))
node.Value = "Buil" + rs_yhmc.GetInt32(1).ToString() + "," + parentNode.Value.Substring(4) 'Substing方法用来去掉Buil
parentNode.ChildNodes.Add(node)
node.ChildNodes.Add(New TreeNode(""))
Loop
node.NavigateUrl = "index.html"
问题1:======================我在点击节点内容的时候想让他指向index.html页面,可是放在这里没有出现结果。
End Sub问题2:由于树的节点比较多,我在点击节点的时候,子节点虽然打开了,但是这个页面显示还是把第一个节点放在最上面,我还在往下拉动滚动条才能看到打开的节点。如何才能让打开的节点显示在用户可以看到的范围之内呢?谢谢!
MyConnection.Open()
AddBuildTreeNodes_root()
Sub AddBuildingTreeNodes(ByVal parentNode As TreeNode, ByVal strSql As String)
Dim insert_yhmc As SqlCommand = New SqlCommand(strSql, MyConnection) Dim rs_yhmc As SqlDataReader = insert_yhmc.ExecuteReader
Dim node As New TreeNode
Do While rs_yhmc.Read node = New TreeNode(rs_yhmc.Item("b_name"))
node.Value = "Buil" + rs_yhmc.GetInt32(1).ToString() + "," + parentNode.Value.Substring(4) 'Substing方法用来去掉Buil
parentNode.ChildNodes.Add(node)
node.ChildNodes.Add(New TreeNode(""))
Loop
node.NavigateUrl = "index.html"
问题1:======================我在点击节点内容的时候想让他指向index.html页面,可是放在这里没有出现结果。
End Sub问题2:由于树的节点比较多,我在点击节点的时候,子节点虽然打开了,但是这个页面显示还是把第一个节点放在最上面,我还在往下拉动滚动条才能看到打开的节点。如何才能让打开的节点显示在用户可以看到的范围之内呢?谢谢!
Dim insert_yhmc As SqlCommand = New SqlCommand(strSql, MyConnection) Dim rs_yhmc As SqlDataReader = insert_yhmc.ExecuteReader
Dim node As New TreeNode
Do While rs_yhmc.Read node = New TreeNode(rs_yhmc.Item("b_name"))
node.Value = "Buil" + rs_yhmc.GetInt32(1).ToString() + "," + parentNode.Value.Substring(4) 'Substing方法用来去掉Buil
parentNode.ChildNodes.Add(node)
node.ChildNodes.Add(New TreeNode(""))node.NavigateUrl = "index.html"
'放在循环里面
Loop
End Sub
请大家帮忙我解决第二个问题。谢谢
其中TreeView1_Data改成{你的TreeView的名字}_Data,这是TreeView自动生成的一个js对象function scrollToSelectedNode()
{
var node = getSelectedNode();
var offset = 10;
if(node!=null)
{
var rec = node.getBoundingClientRect();
window.scrollTo(0,rec.top-offset);
}
}
function getSelectedNode()
{
var data=TreeView1_Data;
var id = data.selectedNodeID.value;
var node = null;
if (id.length > 0)
{
node=document.getElementById(id);
} return node;
}
您的方法不错,不过跳转的时候不是在原地打开,他每次都把点击到的节点跑到上面,能否像csdn那样,在原地打开?谢谢zhangxiaopin(zxp):请问treeview target属性该如何设置?谢谢!
MyConnection.Open()
If Not IsPostBack And Session("a_id") = "" Then
AddAreaTreeNodes()
ElseIf Not IsPostBack And Session("a_id") <> "" Then
AddBuildTreeNodes_root()
End If End Sub请问IsPostBack的属性怎么初始化?谢谢!