在ASP的时候我写的一篇文章,现在改用ASP .NET 2.0
一个类似Ajax的咚咚,支持IE4,支持98。
好像95装了IE4都可以。

一般在微软平台使用Ajax,大部分其实使用的是微软的XML HTTP这个技术。
其实微软还有一个更老的技术,实现无刷新,且客户段无需安装任何东西。而且数据可以直接绑定到表格,无需任何JavaScrip转化Tabular Data Control。

Tabular Data Control(以下称TDC)是基于IE4以上浏览器(可见要求很低)。功能是提供对格式化文本文件的访问。也就是说,TDC提供的数据来源是用指定分隔符来格式化的文本文件。

TDC 的属性有
AppendData
指定已存在的数据,如果发生新的数据的新建或更新。

CaseSensitive
敏感字符。

CharSet
文件编码格式。

DataURL
指定数据文件的位置。 

EscapeChar
转义字符。

Filter
指定过滤数据的方法。

Language
数据文件的语言格式,包括数字和数据的格式。

RowDelim
指定每一行的行终结字符。

Sort
排序方式。

TextQualifier
文本修饰方式。

UseHeader
指定是否显示数据文件第一行的头信息。 

FieldDelim
指定分割数据列的字符。

方法
Reset
刷新数据。

示例:
在Visual Studio 2005中新建一个项目

1、新建数据提供文件Data.aspx,新建时去掉代码分割复选框。
清空Data.aspx所有内容。然后键入以下代码。
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%
 Response.ContentEncoding=Encoding.GetEncoding("GB2312");
 Request.ContentEncoding=Encoding.GetEncoding("GB2312");
 
 SqlConnection cn=new SqlConnection("server=169.0.0.1;database=Test;uid=sa;pwd=iloveyouhpx;");
    SqlCommand cm = new SqlCommand("select top 100 单位,书名,版别,书号 from 图书分销_订单", cn);   
   
 cm.CommandType=CommandType.Text;

    cn.Open();
   
 SqlDataReader r=cm.ExecuteReader();
 
 Response.Write(r.GetName(0));
 Response.Write(",");
 Response.Write(r.GetName(1));
 Response.Write(",");
 Response.Write(r.GetName(2));
 Response.Write(",");
 Response.Write(r.GetName(3));
 Response.Write("\n");
 
 while(r.Read())
 {
        Response.Write(r.GetString(0));
  Response.Write(",");
  Response.Write(r.GetString(1));
  Response.Write(",");
        Response.Write(r.GetString(2));
  Response.Write(",");
  Response.Write(r.GetString(3));
  Response.Write("\n");  
 }
 
 cn.Close();
%>
以上代码的目的是形成一个,用“,”分割的格式化数据文本文件。
运行后的结果如下(文件源文本)

单位,书名,版别,书号
中国刑警学院图书馆,权力定律,群言版,ISBN7-80080-398-8
中国刑警学院图书馆,八千里路云和月,京华版,ISBN7-80600-725-3
....
现在需要建立另一个文件来显示数据。
2、新建Test.aspx
(1)嵌入ActiveX控件
<object >
Dim rsCount '记录数
Dim pageCount '页数
Dim iPage '当前页

Sub FirstPage_onClick()
 software.firstPage() '第一页
 iPage=1
 LastPage.disabled=false
 NextPage.disabled=false
 FirstPage.disabled=true
 PrevPage.disabled=true
 PageMessage.innerText="第"&iPage&"页"
End Sub

Sub PrevPage_onClick()
 LastPage.disabled=false
 NextPage.disabled=false
 If iPage>1 Then
  software.previousPage() '上一页
  iPage=iPage-1  
  If iPage<2 Then
   FirstPage.disabled=true
   PrevPage.disabled=true
  End If
 End If
 PageMessage.innerText="第"&iPage&"页"
End Sub

Sub NextPage_onClick()
 FirstPage.disabled=false
 PrevPage.disabled=false
 If iPage<pageCount Then
  software.nextPage() '下一页
  iPage=iPage+1
  If iPage>=pageCount Then
   LastPage.disabled=true
   NextPage.disabled=true
  End If
 End If
 PageMessage.innerText="第"&iPage&"页"
End Sub

Sub LastPage_onClick()
 software.lastPage() '最后一页
 iPage=pageCount
 LastPage.disabled=true
 NextPage.disabled=true
 FirstPage.disabled=false
 PrevPage.disabled=false
 PageMessage.innerText="第"&iPage&"页"
End Sub

Sub Search_onClick()
 dsoSoftware.DataURL = "Data.aspx"
 rsCount=0 
 FirstPage.style.display="none"
 PrevPage.style.display="none"
 NextPage.style.display="none"
 LastPage.style.display="none"
 software.style.display="none"
 PageMessage.style.display="none"
 ResultMessage.style.display="block"
 ResultMessage.innerText="正在搜索数据..."
 dsoSoftware.reset '搜索数据,可以理解为Su
End Sub

'数据搜索完毕
Sub dsoSoftware_onDataSetComplete()
 FirstPage.disabled=true
 PrevPage.disabled=true
 rsCount=dsoSoftware.recordset.recordcount
 If rsCount>0 Then
  FirstPage.style.display="block"
  PrevPage.style.display="block"
  NextPage.style.display="block"
  LastPage.style.display="block"
  software.style.display="block"
  ResultMessage.style.display="block"
  PageMessage.style.display="block"
  pageCount=rsCount\10-CBool(rsCount mod 10)
  ResultMessage.innerText="共找到"&rsCount&"个符合搜索条件的结果 共"&pageCount&"页"
  PageMessage.innerText="第1页"
  iPage=1
  If PageCount<2 Then
   FirstPage.style.display="none"
   PrevPage.style.display="none"
   NextPage.style.display="none"
   LastPage.style.display="none"
  Else
   NextPage.disabled=false
   LastPage.disabled=false
  End If
 Else
  FirstPage.style.display="none"
  PrevPage.style.display="none"
  NextPage.style.display="none"
  LastPage.style.display="none"
  software.style.display="none"
  PageMessage.style.display="none"
  ResultMessage.style.display="block"
  ResultMessage.innerText="没有找到符合搜索条件的软件"
 End If
End Sub

'出现错误
Sub Window_onError(msg,url,line)
 ResultMessage.innerHTML="<b>网页产生了一个错误。</b><p>"
 ResultMessage.innerHTML=ResultMessage.innerHTML+"错误描述: " + msg + "<br>"
 ResultMessage.innerHTML=ResultMessage.innerHTML+"行:" + line + "<br>"
 ResultMessage.innerHTML=ResultMessage.innerHTML+"链接:" + url + "<br>"
End Sub
</script>

总结:
  • 最早我看到使用这个控件的网页是微软全球下载中心。
  • 该控件是可以绑定Text文本框的,其他HTML控件也可以。
  • 为什么这个控件没有再用了。估计是因为功能还是简单了点。

相关文章:

  • 2021-12-18
  • 2021-11-27
  • 2021-06-24
  • 2021-12-02
  • 2021-11-30
  • 2021-12-07
  • 2021-08-21
  • 2022-01-01
猜你喜欢
  • 2021-05-26
  • 2021-11-21
  • 2021-05-15
  • 2022-03-05
  • 2022-01-08
  • 2021-12-05
  • 2022-12-23
相关资源
相似解决方案