各位朋友,我做了个网页,左边的DIV里面是个表格,有各种信息,右侧的DIV中有个AJAX的控件ModalPopupExtender,该控件的TargetControlID=“左边表格的一个按钮的ID”,PopupControlID=“一个含有TreeView的面板ID”,现在我已经实现了点左边表格中的按钮显示出TreeView,我的问题是我选中TreeView中的节点时,将该节点的值传入左侧表格的一个文本框中,现在值也能传过去,可每传一次页面就刷新一次,我不想让他刷新应该怎么办?我在左侧表格放过UpdatePanel,可给我报错,不知各位有什么高见,谢谢,在线等答案,辛苦大家了帮忙看看
解决方案 »
- 新手求解 Timer1.Interval问题
- 求一flash头像编辑器
- js取不到dropdownlist的值?
- 后缀名 .ashx的使用
- 关于datagrid表的二次查询
- 运行的网页上出现'undefind'为空或不是对象的错误
- SQL Server2000实现跨库查询
- asp.net中写的COOKIES如何用ASP读出来? 用的下面的语句写的.100分送
- 如何制作Duwamish那样的安装程序?
- 关于代码实现无对话框下载文件问题
- FreeTextBox中的图片上传ImageGallery是英文的,如何改成中文?好像该控件没有设置语言的地方。
- 关于未将对象引用设置到对象的实例,给30分,急呀!
先设置 EnableClientScript 设置为 false ,才能用在updatepanel中。不过这时需要在后台的几个事件中写状态管理代码记录节点的展开/折叠状态。当这个参数是true时,特别是 PopulateNodesFromClient 同时设置为 true 时,用于早先的 ajax方法,确实与 updatepanel 不兼容。
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></cc1:ToolkitScriptManager>
<div>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TreeView1" EventName="SelectedNodeChanged" />
</Triggers>
</asp:UpdatePanel> <asp:ImageButton ID="ImageButton1" runat="server" />
</div>
<div>
<div>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="ImageButton1" PopupControlID="Panel1" X="750" Y="250">
</cc1:ModalPopupExtender>
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">
<asp:TreeView ID="TreeView1" runat="server" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" >
<Nodes>
<asp:TreeNode Text="root" Value="root">
<asp:TreeNode Text="aa" Value="aa"></asp:TreeNode>
<asp:TreeNode Text="bb" Value="bb"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
</asp:Panel>
</div>
</div>
</div>
</form>
</body>
</html>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" RenderMode="Inline" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TreeView1" EventName="SelectedNodeChanged" />
</Triggers>
上网看了看都不是很清楚说的,有空的话还请帮忙解释一下
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TreeView1" EventName="SelectedNodeChanged" />
</Triggers>
</asp:UpdatePanel>
==
ChildrenAsTriggers="False" updatepanel里的子控件不引发更新,对于本例不重要
UpdateMode="Conditional" 这个属性非常重要,代表此updatepanel并不是每次都更新,而是有条件的更新,在本例中根据TreeView的SelectedNodeChanged更新,也可以在后台代码中明确调用updatepanel的update方法完成同样的功能
RenderMode="Inline" 这个不重要,表示这个updatepanel在客户端生成的是span标记,而不是div <Triggers>
<asp:AsyncPostBackTrigger ControlID="TreeView1" EventName="SelectedNodeChanged" />
</Triggers>
==
这里定义了触发器,触发器就是一种绑定,它决定了哪一个外部控件(本例是TreeView1)的哪一个事件(本例是SelectedNodeChanged)会引发异步回送并更新此UpdatePanel控件的内容,对于本例很重要