Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: 此方法调用是 Web 窗体设计器所必需的 '不要使用代码编辑器修改它。 InitializeComponent() TreeView1.Attributes("OnClick") = "javascript: window.setTimeout _('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript')" End Sub 在你的aspx页面加一按钮,双击按钮.现在你试试,展开,收拢都不会有回发了. 这个方法我们正用,肯定能解决你的问题.
把SelectExpands="false",当点击'+'时显示的内容还是最大一个结点的内容~~因为我设置了treeview的自动刷新的属性.如果不设置的话,点击结点时,右边datagrd的数据就不会更新还有谁知道该怎么编啊~~~
我怎么没看到那??
<INPUT id="Button1" style="DISPLAY:none;" type="button" value="Button" name="Button1" runat="server">
这个Button必须为Html控件,并将其转为在服务器端运行。
style="DISPLAY:none;"该句用来在页面隐藏Button。
在Visual.net的设计界面双击该Button产生以下事件:
private void Button1_ServerClick(object sender,System.EventArgs e)
{
}
这里不用添加任何代码,目的是当服务器处理该页面并发送给客户端时产生下面客户端脚本:
<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform = document.Form1;
theform.__EVENTTARGET.value = eventTarget;
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
8会用
今天终于可以尝试着解决一下了~~^_^treeview控件去www.asp.net下载
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
TreeView1.Attributes("OnClick") = "javascript: window.setTimeout _('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript')" End Sub
在你的aspx页面加一按钮,双击按钮.现在你试试,展开,收拢都不会有回发了.
这个方法我们正用,肯定能解决你的问题.
是否要进行调试?
行:75
错误:缺少';'"
这个缺少';'的行有很多~~~~~,我对javascript不是很熟悉,所以也不知道该在那里修改~~~~我都是按你的代码复制过去的:
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
TreeView1.Attributes("OnClick") = "javascript: window.setTimeout _('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript')"End Sub你说的添加按钮我也加了:
<INPUT id="Button1" style="DISPLAY:none;" type="button" value="Button" name="Button1" runat="server">
我也双击了:
Private Sub Button1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ServerClick
End Sub我用treeview的expand和collapse事件中实现了要求,不过每次扩展和收缩时页面要刷新(页面抖动很大~~~)代码如下:
'当树结点扩展时
Private Sub TreeView1_Expand(ByVal sender As Object, ByVal e As Microsoft.Web.UI.WebControls.TreeViewClickEventArgs) Handles TreeView1.Expand
Dim nodestring As String '当前所选择的节点索引
ximing = TreeView1.SelectedNodeIndex
jysmcindex = TreeView1.SelectedNodeIndex
nodestring = TreeView1.SelectedNodeIndex
'判断选取的目录
Select Case nodestring.Length
Case 1 '院
view_total(college_total())
view_all(college_all())
btnall.Visible = False
btnyj.Visible = False
btnwj.Visible = False
btncj.Visible = False
dgall.Visible = True
dgstaffroom.Visible = False
lblall.Text = "详细信息:"
Case 3 '系
view_total(department_total(ximing))
view_all(department_all(ximing))
btnall.Visible = False
btnyj.Visible = False
btnwj.Visible = False
btncj.Visible = False
dgall.Visible = True
dgstaffroom.Visible = False
lblall.Text = "详细信息:"
Case 5 '教研室
view_total(staffroom_total(jysmcindex))
view_staffroom_all(staffroom_all(jysmcindex))
btnall.Visible = True
btnyj.Visible = True
btnwj.Visible = True
btncj.Visible = True
dgall.Visible = False
dgstaffroom.Visible = True
lblall.Text = "详细信息:(应交)"
End Select
End Sub '当树节点闭合时
Private Sub TreeView1_Collapse(ByVal sender As Object, ByVal e As Microsoft.Web.UI.WebControls.TreeViewClickEventArgs) Handles TreeView1.Collapse
Dim nodestring As String '当前所选择的节点索引
ximing = TreeView1.SelectedNodeIndex
jysmcindex = TreeView1.SelectedNodeIndex
nodestring = TreeView1.SelectedNodeIndex
'判断选取的目录
Select Case nodestring.Length
Case 1 '院
view_total(college_total())
view_all(college_all())
btnall.Visible = False
btnyj.Visible = False
btnwj.Visible = False
btncj.Visible = False
dgall.Visible = True
dgstaffroom.Visible = False
lblall.Text = "详细信息:"
Case 3 '系
view_total(department_total(ximing))
view_all(department_all(ximing))
btnall.Visible = False
btnyj.Visible = False
btnwj.Visible = False
btncj.Visible = False
dgall.Visible = True
dgstaffroom.Visible = False
lblall.Text = "详细信息:"
Case 5 '教研室
view_total(staffroom_total(jysmcindex))
view_staffroom_all(staffroom_all(jysmcindex))
btnall.Visible = True
btnyj.Visible = True
btnwj.Visible = True
btncj.Visible = True
dgall.Visible = False
dgstaffroom.Visible = True
lblall.Text = "详细信息:(应交)"
End Select
End Sub不过我还是很想知道你说的方法该怎么实现的(扩展和收缩时不用刷新)~~~~你能看看系统报的错误是错在那里吗?
"javascript: window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript')"你copy这段试试,应该不会错了.
TreeView1.Attributes("OnClick") = _
"javascript: window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript')"我试了一下~~~基本上和我昨天实现的差不多~~不过还是有个问题:比如顶级节点是A,A下面有三个子节点B,C,D;B,C,D下面各有子节点
1.我先扩展了B节点后,点击了其中一个子节点B2,右边的datagrid就显示B2节点的内容
2.我再收缩B节点,右边的datagrid就显示B节点的内容
3.我又扩展C节点(但没点击C节点),右边的datagrid本来应该还是显示B节点的内容,但是显示的却是A节点的内容
4.我又收缩C节点,同样还是显示的A节点内容
除了这个问题外,我觉得添加了你的代码后,每次扩展和收缩依然要刷新~~~每次刷新页面抖动都很大~~~