解压缩后将文件放在webshop3.0工程目录( PROJECTS)用webshop打开。 使用软件的下载地址:http://cn.joyistar.com <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title></title> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/System.js"></SCRIPT> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/DataSet.js"></SCRIPT> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/Control.js"></SCRIPT> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/DBControl.js"></SCRIPT> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/DBNavigator.js"></SCRIPT> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/DBPageNavigator.js"></SCRIPT> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/DBGrid.js"></SCRIPT> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/DBRadioGroup.js"></SCRIPT> </head> <BODY onload='afterload();'> </BODY> </html> <SCRIPT language=JavaScript type="text/javascript"> function afterload(){ init(); } function init(){ window.VirtualPath="/testquery"; window.DataSet1=new DataSet(); var Field1 = new Field("PRODUCT_ID","System.String"); var Field2 = new Field("PRODUCT_NAME","System.String"); var Field3 = new Field("PRODUCT_PRICE","System.Single"); var Field4 = new Field("PRODUCT_AREA","System.String"); window.DBGrid1=new DBGrid(); window.DBNavigator1=new DBNavigator(); window.DBEdit1=new DBEdit(); window.DBEdit2=new DBEdit(); window.DBEdit3=new DBEdit(); window.DBEdit4=new DBEdit(); window.DBLabel1=new DBLabel(); window.DBLabel2=new DBLabel(); window.DBLabel3=new DBLabel(); window.DBLabel4=new DBLabel(); DataSet1.Name='DataSet1'; DataSet1.MaxRows=5; DataSet1.OpenURL='NewDotNet.aspx'; DataSet1.Async=true; Field1.Name='Field1'; Field1.Type='System.String'; Field1.FieldName='PRODUCT_ID'; Field2.Name='Field2'; Field2.Type='System.String'; Field2.FieldName='PRODUCT_NAME'; Field3.Name='Field3'; Field3.Type='System.Single'; Field3.FieldName='PRODUCT_PRICE'; Field4.Name='Field4'; Field4.Type='System.String'; Field4.FieldName='PRODUCT_AREA'; DBGrid1.Name='DBGrid1'; DBGrid1.style.height='225'; DBGrid1.style.width='422'; DBGrid1.style.position='absolute'; DBGrid1.style.left='19'; DBGrid1.style.top='145'; DBGrid1.DataSet=DataSet1; DBNavigator1.Name='DBNavigator1'; DBNavigator1.style.height='26'; DBNavigator1.style.width='656'; DBNavigator1.style.position='absolute'; DBNavigator1.style.left='10'; DBNavigator1.style.top='89'; DBNavigator1.DataSet=DataSet1; DBEdit1.Name='DBEdit1'; DBEdit1.value='DBEdit1'; DBEdit1.style.height='27'; DBEdit1.style.width='91'; DBEdit1.style.position='absolute'; DBEdit1.style.left='552'; DBEdit1.style.top='147'; DBEdit1.DataSet=DataSet1; DBEdit1.DataField='PRODUCT_ID'; DBEdit2.Name='DBEdit2'; DBEdit2.value='DBEdit1'; DBEdit2.style.height='25'; DBEdit2.style.width='91'; DBEdit2.style.position='absolute'; DBEdit2.style.left='553'; DBEdit2.style.top='211'; DBEdit2.DataSet=DataSet1; DBEdit2.DataField='PRODUCT_NAME'; DBEdit3.Name='DBEdit3'; DBEdit3.value='DBEdit1'; DBEdit3.style.height='25'; DBEdit3.style.width='91'; DBEdit3.style.position='absolute'; DBEdit3.style.left='553'; DBEdit3.style.top='272'; DBEdit3.DataSet=DataSet1; DBEdit3.DataField='PRODUCT_PRICE'; DBEdit4.Name='DBEdit4'; DBEdit4.value='DBEdit1'; DBEdit4.style.height='25'; DBEdit4.style.width='91'; DBEdit4.style.position='absolute'; DBEdit4.style.left='554'; DBEdit4.style.top='338'; DBEdit4.DataSet=DataSet1; DBEdit4.DataField='PRODUCT_AREA'; DBLabel1.Name='DBLabel1'; DBLabel1.value='DBLabel1'; DBLabel1.style.height='26'; DBLabel1.style.width='75'; DBLabel1.style.position='absolute'; DBLabel1.style.left='464'; DBLabel1.style.top='148'; DBLabel1.innerHTML='ID'; DBLabel2.Name='DBLabel2'; DBLabel2.value='DBLabel1'; DBLabel2.style.height='26'; DBLabel2.style.width='75'; DBLabel2.style.position='absolute'; DBLabel2.style.left='464'; DBLabel2.style.top='210'; DBLabel2.innerHTML='NAME'; DBLabel3.Name='DBLabel3'; DBLabel3.value='DBLabel1'; DBLabel3.style.height='26'; DBLabel3.style.width='75'; DBLabel3.style.position='absolute'; DBLabel3.style.left='464'; DBLabel3.style.top='270'; DBLabel3.innerHTML='PRICE'; DBLabel4.Name='DBLabel4'; DBLabel4.value='DBLabel1'; DBLabel4.style.height='26'; DBLabel4.style.width='75'; DBLabel4.style.position='absolute'; DBLabel4.style.left='464'; DBLabel4.style.top='338'; DBLabel4.innerHTML='AREA'; DataSet1.Fields.Add(Field1); DataSet1.Fields.Add(Field2); DataSet1.Fields.Add(Field3); DataSet1.Fields.Add(Field4); DataSet1.Fields.Auto = false; DataSet1.Open(); } </SCRIPT> <SCRIPT language=JavaScript type="text/javascript" SRC="jcl/DateTimeInput.js"></SCRIPT> Imports System Imports System.Data Imports System.Data.OleDb Imports System.Configuration Imports System.Collections Imports System.Web Imports System.Web.Security Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls.WebParts Imports System.Web.UI.HtmlControls Imports joyistar.eip.util Imports joyistar.eip.vo Partial Class NewDotNet Inherits System.Web.UI.Page Private connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\db\\demo.mdb" Private sql As String = "select * from product" Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.ContentType = "text/xml" Dim xml As String = HttpParser.getXML(Request.InputStream) Dim xmlrequest As XmlRequest = New XmlRequest() Try xmlrequest.Open(xml) Dim conn As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection(connString) conn.Open() Dim cmd As Data.OleDb.OleDbCommand = New Data.OleDb.OleDbCommand(sql, conn) Dim reader As Data.OleDb.OleDbDataReader = cmd.ExecuteReader() Dim metadata As Data.DataTable = reader.GetSchemaTable() 'fill fields For Each row As DataRow In metadata.Rows If row("DataType").Equals("STRING") Then xmlrequest.AddField(System.Convert.ToString(row("ColumnName")), System.Convert.ToInt32(row("DataTyp")), System.Convert.ToInt32(row("ColumnSize"))) Else xmlrequest.AddField(System.Convert.ToString(row("ColumnName")), System.Convert.ToString(row("DataType"))) End If Next 'fill data While reader.Read() xmlrequest.Append() For Each row As DataRow In metadata.Rows Dim fieldname As String = System.Convert.ToString(row("ColumnName")) Dim fieldvalue As String = reader(fieldname).ToString() xmlrequest.SetValue(fieldname, fieldvalue) Next End While Response.Write(xmlrequest.GetXml()) Response.Flush() Catch ex As Exception xmlrequest.SetError(ex.Message) Response.Write(xmlrequest.GetXml()) Response.Flush() End Try End Sub End Class :heart: :heart: :heart:
怎么用javascript做数据的格式化 作者:老K 我们在项目中都有用过金额数字及日期等数据格式化输出显示,比如前面加上“¥”,数值取小数点后两位,短日期时间等。一般的高级语言及开发工具都有提供相应的转换函数如format之类,可是我在最近做web网上银行相关的系统时,却遇到这个很麻烦的问题,就是javascript不提供这种format函数,查了些资料,知道vbscript是有格式化函数的,可是vbscript是微软专用的,无奈只好用正则表达式,可正则表达式也不能够很通用地解决各种类型转换问题,真的是很郁闷,无意中找到看到一个AJAX开发工具的演示,看到它的数据有显示“¥”和数值小数点后两位格式化,马上下载了看了下,发现它居然是用javascript+XSL实现了通用的格式化函数,下载AJAX WebShop后,我找到它的system.js这个文件,打开找到以下函数: function FormatFloat(value,mask) { return BasicFormat(value,mask,'FormatNumber') } function FormatDate(varDate, bstrFormat, varDestLocale) { return BasicFormat(varDate,bstrFormat,'FormatDate',varDestLocale); } function FormatTime(varTime, bstrFormat, varDestLocale) { return BasicFormat(varTime,bstrFormat,'FormatTime',varDestLocale); } function BasicFormat(value,mask,action,param) { var xmlDoc; var xslDoc; var v='<formats><format><value>'+value+'</value><mask>'+mask+'</mask></format></formats>'; xmlDoc=parseXML(v); var x; if(isIE) x='<xsl:stylesheet xmlns:xsl="uri:xsl">' else x='<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">'; x+='<xsl:template match="/">'; if(isIE) { x+='<xsl:eval>'+action+'('+value+',"'+mask+'"'; if(param)x+=','+param; x+=')</xsl:eval>'; } else x+='<xsl:value-of select="format-number('+value+',\''+mask+'\')" />'; x+='</xsl:template></xsl:stylesheet>'; xslDoc=parseXML(x); var s; if(isIE) s= xmlDoc.transformNode(xslDoc) else{ //for mozilla/netscape var processor = new XSLTProcessor(); processor.importStylesheet(xslDoc); var result = processor.transformToFragment(xmlDoc, xmlDoc); var xmls = new XMLSerializer(); s = xmls.serializeToString(result); } return s; } 看来他们对xsl用得可真是出神入化了,居然这样就可以实现很通用的格式化转换了,当然不客气了,直接加到我的函数库中哈。 这个代码偶没有看得很懂,不过确实很管用,请对XSL精通的朋友分析下也好让我们学习下。