-
asp.net教程之ASP+中取代ASP的RS(Remote Scripting)技术的
在上面的文章里面我提到了Page.IsPostBack属性的一个应用,可以用来保存用户输入的信息,下面我将介绍它的另外一个用处,那就是取代ASP中的RS(Remote Scripting)技术。
至于RS的基本概念和用法我已经在asp版里面有很多介绍了,它主要的优势就是在不刷新当前页面的情况下和服务器端进行通信。但是由于它的底层是使用了java技术,所以它用起来还是显得较为烦琐,下面我就将介绍在ASP+中如何利用Page.IsPostBack来取代RS技术。
按照我的习惯是喜欢用具体的例子来解释问题,所以这次还是使用一个简单的实例来说明问题。下面这个例子中,将使用一个Products.aspx程序,它主要有两个服务器端控件(Server-side control),这是asp+里面引入的新的控件编程方式,一个是一个下拉框控件--'mudCategories',另外一个是列表框控件--'mudProducts'。这个例子将演示,列表框中的内容将跟随下拉框中内容的改变而改变,为了大家重现的方便,我将使用SQL Server中自带的数据库例子来实现。
Products.aspx代码如下:
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.ADO"%>
<script language="VB" runat="server">
Sub Page_Load (SourceObj as Object, EveArg as EventArgs)
If Not Page.IsPostBack Then
Dim mudCommand As ADODataSetCommand
Dim mudConnection As ADOConnection
Dim dSet As New DataSet
Dim strSQL as String
Dim connStr as String
strSQL = "SELECT CategoryID, CategoryName From Categories"
connStr = "Provider = SQLOLEDB; Data Source=test; Initial Catalog=Northwind; User ID=sa; password=;"
mudConnection = New ADOConnection(connStr)
mudCommand = New ADODataSetCommand(strSQL, mudConnection)
mudCommand.FillDataSet(dSet, "Categories")
mudCategories.DataSource = dSet.Tables("Categories").DefaultView
mudCategories.DataBind()
End If
End Sub
Sub displayProducts (Source as Object, EveArg as EventArgs)
Dim mudCommand As ADODataSetCommand
Dim mudConnection As ADOConnection
Dim dSet As New DataSet
Dim strSQL as String
Dim connStr as String
connStr = "Provider = SQLOLEDB; Data Source=test; Initial Catalog=Northwind; User ID=sa; password=;"
strSQL = "Select ProductID, ProductName From Products"
strSQL = strSQL & " WHERE CategoryID = " & mudCategories.SelectedItem.Value
mudConnection = New ADOConnection(connStr)
mudCommand = New ADODataSetCommand(strSQL, mudConnection)
mudCommand.FillDataSet(dSet, "Products")
mudProducts.DataSource = dSet.Tables("Products").DefaultView
mudProducts.DataBind()
End Sub
</script>
<html>
<form name="mudForm" runat="server">
产品目录:
<asp:DropDownList id="mudCategories" runat="server" DataTextField="CategoryName" DataValueField="CategoryID" AutoPostBack="true" OnSelectedIndexChanged="displayProducts"/>
产品: <asp:ListBox id="mudProducts" SelectionMode="Multiple" DataValueField="ProductID" DataTextField="ProductName" runat="server" />
</html>
从例子程序可以看到,其中显然是使用了服务器端控件的下拉框OnChange事件配合AutoPostBack和
Page.IsPostBack属性就可以很简单和清晰的实现了以前在asp中烦琐的RS实现方法。
呵呵,希望大家从上面的这个例子中有所收获。
至于RS的基本概念和用法我已经在asp版里面有很多介绍了,它主要的优势就是在不刷新当前页面的情况下和服务器端进行通信。但是由于它的底层是使用了java技术,所以它用起来还是显得较为烦琐,下面我就将介绍在ASP+中如何利用Page.IsPostBack来取代RS技术。
按照我的习惯是喜欢用具体的例子来解释问题,所以这次还是使用一个简单的实例来说明问题。下面这个例子中,将使用一个Products.aspx程序,它主要有两个服务器端控件(Server-side control),这是asp+里面引入的新的控件编程方式,一个是一个下拉框控件--'mudCategories',另外一个是列表框控件--'mudProducts'。这个例子将演示,列表框中的内容将跟随下拉框中内容的改变而改变,为了大家重现的方便,我将使用SQL Server中自带的数据库例子来实现。
Products.aspx代码如下:
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.ADO"%>
<script language="VB" runat="server">
Sub Page_Load (SourceObj as Object, EveArg as EventArgs)
If Not Page.IsPostBack Then
Dim mudCommand As ADODataSetCommand
Dim mudConnection As ADOConnection
Dim dSet As New DataSet
Dim strSQL as String
Dim connStr as String
strSQL = "SELECT CategoryID, CategoryName From Categories"
connStr = "Provider = SQLOLEDB; Data Source=test; Initial Catalog=Northwind; User ID=sa; password=;"
mudConnection = New ADOConnection(connStr)
mudCommand = New ADODataSetCommand(strSQL, mudConnection)
mudCommand.FillDataSet(dSet, "Categories")
mudCategories.DataSource = dSet.Tables("Categories").DefaultView
mudCategories.DataBind()
End If
End Sub
Sub displayProducts (Source as Object, EveArg as EventArgs)
Dim mudCommand As ADODataSetCommand
Dim mudConnection As ADOConnection
Dim dSet As New DataSet
Dim strSQL as String
Dim connStr as String
connStr = "Provider = SQLOLEDB; Data Source=test; Initial Catalog=Northwind; User ID=sa; password=;"
strSQL = "Select ProductID, ProductName From Products"
strSQL = strSQL & " WHERE CategoryID = " & mudCategories.SelectedItem.Value
mudConnection = New ADOConnection(connStr)
mudCommand = New ADODataSetCommand(strSQL, mudConnection)
mudCommand.FillDataSet(dSet, "Products")
mudProducts.DataSource = dSet.Tables("Products").DefaultView
mudProducts.DataBind()
End Sub
</script>
<html>
<form name="mudForm" runat="server">
产品目录:
<asp:DropDownList id="mudCategories" runat="server" DataTextField="CategoryName" DataValueField="CategoryID" AutoPostBack="true" OnSelectedIndexChanged="displayProducts"/>
产品: <asp:ListBox id="mudProducts" SelectionMode="Multiple" DataValueField="ProductID" DataTextField="ProductName" runat="server" />
</html>
从例子程序可以看到,其中显然是使用了服务器端控件的下拉框OnChange事件配合AutoPostBack和
Page.IsPostBack属性就可以很简单和清晰的实现了以前在asp中烦琐的RS实现方法。
呵呵,希望大家从上面的这个例子中有所收获。
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式