asp.net的UpdatePanel控件

为了提高树形控件的刷新效率,用局部刷新技术。

.aspx代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="中国市区县.aspx.cs" Inherits="中国市区县" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

<style type="text/css">

.fl{ float:left;}

</style>

</head>

<body>

<form id="form1" runat="server">

<div>

<div class="fl" runat="server">

<p><%=DateTime.Now.ToString() %></p>

<asp:TreeView ID="tv_china" runat="server"

onselectednodechanged="tv_china_SelectedNodeChanged" ExpandDepth="0"   >

</asp:TreeView>

<asp:ScriptManager

ID="ScriptManager1" runat="server">

</asp:ScriptManager>

</div>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<p><%=DateTime.Now.ToString() %></p>

TEXT:<asp:Label ID="Label1" runat="server" Text=""></asp:Label>

VALUE:<asp:Label ID="Label2" runat="server" Text=""></asp:Label>

VALUEPATH:<asp:Label ID="Label3" runat="server" Text=""></asp:Label>

</ContentTemplate>

<Triggers >

<asp:AsyncPostBackTrigger ControlID="tv_china"  />

</Triggers>

</asp:UpdatePanel>

</div>

</form>

</body>

</html>

注意观察两个控件内时间的变化,可以看出局部刷新的效果。

.aspx.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;

public partial class 中国市区县 : System.Web.UI.Page
{
    string str_cnn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=";
    string str_sourcefile = "~/data/china.mdb";
    OleDbConnection cnn;
    OleDbCommand cmd;
    OleDbDataReader datar;
    string str_sql;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            makeTree();
        }

    }
    protected void makeTree() {
        TreeNode _tnode, _parentNode;
        string str_conn = str_cnn + MapPath(str_sourcefile);
        cnn = new OleDbConnection(str_conn);
        cnn.Open();

        //构建一级(省)
        str_sql = "select p_id,p_name from t_province";
        cmd = new OleDbCommand(str_sql, cnn);
        datar = cmd.ExecuteReader();

        while (datar.Read())
        {
            _tnode = new TreeNode();
            _tnode.Text = datar["p_name"].ToString();
            _tnode.Value="p_"+datar["p_id"].ToString();
            tv_china.Nodes.Add(_tnode);

        }
        //构建二级(市)
        str_sql = "select c_id,c_name,c_pid from t_city";
        cmd = new OleDbCommand(str_sql, cnn);
        datar = cmd.ExecuteReader();

        while (datar.Read())
        {
            _parentNode = tv_china.FindNode("p_" + datar["c_pid"].ToString());
            _tnode = new TreeNode();

            _tnode.Text = datar["c_name"].ToString();
            _tnode.Value = "c_" + datar["c_id"].ToString();
            _parentNode.ChildNodes.Add(_tnode);

        }

        //构建三级(区)
        str_sql = "SELECT T_City.c_pid, T_City.c_id, T_District.d_id, T_District.d_name FROM T_District INNER JOIN T_City ON T_District.d_cid = T_City.c_id";
        cmd = new OleDbCommand(str_sql, cnn);
        datar = cmd.ExecuteReader();

        while (datar.Read())
        {
            _parentNode = tv_china.FindNode("p_" + datar["c_pid"].ToString() + "/c_" + datar["c_id"].ToString());
            _tnode = new TreeNode();
            _tnode.Text = datar["d_name"].ToString();
            _tnode.Value = "d_" + datar["d_id"].ToString();

            _parentNode.ChildNodes.Add(_tnode);
        }

        cnn.Close();

    }

    protected void tv_china_SelectedNodeChanged(object sender, EventArgs e)
    {
        TreeNode _tnode;
        _tnode = tv_china.SelectedNode;

        Label1.Text = _tnode.Text;
        Label2.Text = _tnode.Value;
        Label3.Text = _tnode.ValuePath;
    }
}

效果如下:

时间: 2024-08-03 07:01:35

asp.net的UpdatePanel控件的相关文章

asp.net中updatepanel控件向外传值

.aspx代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpdatePanel控件传值.aspx.cs" Inherits="UpdatePanel控件传值" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:

ASP.Net UpdatePanel控件(转)

Asp.net UpdatePanel 允许用户构建一个丰富的,以客户端为中心的应用程序,引用UpdatePanel控件,能够实现页面的部分刷新,一个包含scriptManage和 UpdatePanel控件的页面自动具有页面部分刷新的功能,不需要写任何的客户端JavaScript代码.一个web页面只能包含一个 ScriptManage控件,但可以包含一个或多个UpdatePanel控件.  使用UpdatePanel控件实现页面的局部更新,需要包含一个ScriptManage控件,并且必须将

ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二) UpdatePanel

UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新.通过本文来学习一下UpdatePanel其他的一些使用方法(第二篇). 主要内容 1.用编程的方法控制UpdatePanel的更新 2.UpdatePanel的嵌套使用 3.同一页面上使用多个UpdatePan

ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)

UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新.通过本文来学习一下UpdatePanel简单的使用方法(第一篇). 主要内容 1.UpdatePanel控件概述 2.UpdatePanel工作原理 3.ContentTemplate属性 4.ContentT

UpdatePanel控件

Asp.net UpdatePanel 允许用户构建一个丰富的,以客户端为中心的应用程序,引用UpdatePanel控件,能够实现页面的部分刷新,一个包含scriptManage和 UpdatePanel控件的页面自动具有页面部分刷新的功能,不需要写任何的客户端JavaScript代码.一个web页面只能包含一个 ScriptManage控件,但可以包含一个或多个UpdatePanel控件. 使用UpdatePanel控件实现页面的局部更新,需要包含一个ScriptManage控件,并且必须将S

通过Ajax来简单的实现局部刷新(主要为C#中使用的UpdatePanel控件和ScriptManager控件)

1. ScriptManager和UpdatePanel控件联合使用可以实现页面局部异步刷新的效果.UpdatePanel用来设置页面中局部异步刷新的区域,它必须依赖于ScriptManager,因为ScriptManager控件提供了客户端脚本生成与管理UpdatePanel的功能. ScriptManager属性 解释 EnablePartialRendering 如果启用了部分呈现且禁止了整页更新,则为 true:否则为 false. 默认值为 true.       一.实例一 Upda

asp.net中Ajax控件的用途(一)

1,UpdatePanel控件,用户更新部分内容,示例 放入一个Label和一个Button,单击按钮,label显示当前时间. 2,ScriptManagerProxy控件,每个页面只能有一个ScriptManager,当使用的母版页存在ScriptManager时,子页内容页应该使用ScriptManagerProxy. 3,UpdateProgress控件,用途举例,可以用来在网站等候服务器反馈的时候,显示某些提示用户等待的内容 4,Timer控件用途举例,双击进入事件,Label1.wi

Asp.Net中ObjectDataSource控件传参绑定数据

最近在实习,在上头交付的任务中,由于需要使用Asp.Net的ListView控件,因此必然得就使用了ObjectDataSource控件,由于在使用过程中,需要网页中的参数发送到后台后,运行该参数进行查询数据.这过程必然就牵涉到将参数传送给ObjectDataSource控件,然后在进行查询后的数据绑定.下面我们来看下这个过程是如何实现的: 1.创建一个WebForm页面,拖入ListView控件和ObjectDataSource控件 2.配置ObjectDataSource数据源按照以下步骤进

在ASP.NET 的服务器端控件中有三种关于 ID 的属性

在ASP.NET 的服务器端控件中有三种关于 ID 的属性,即 ID, ClientID 和 UniqueID. ID 表示控件的服务器端编程的标识符,我们写"服务器端的代码",就要用到这个 ID, 通过这个 ID 可以在服务器端对服务器端控件的属性.方法和时间进行编程访问.(可写) ClientID 表示由服务器端生成的客户端控件的ID,"经常用于在客户端脚本中访问服务器控件所呈现的 HTML 元素".一般情况下与服务器端的 ID 相同,有时,不能为控件生成唯一的