应用:
客户端提出查询SQLServer数据库请求,通过Ajax取回数据到客户端的RecordSet,然后绑定到ActiveX Grid中去
思路:
1.使用【AjaxPro2】在网页客户端向网页服务器端发出请求
2.由网页服务器端向SQLServer提交数据请求并且返回数据
3.由服务器端返回数据,填充客户端的【RecordSet】(注:CreateObject("ADODB.RecordSet"))
问题:
以上的第一和第二已经解决,第三点现在返回的数据无法写入RecordSet,不管用vbscript还是javascript 都可以,劳驾写出代码,一定给分,这几天等。补充:
服务器端返回DataSet或者XML或者其他的对象都可以,只要能通过ajax实现客户的RecordSet取得服务器的DataTable就可以,不知道我这样写您明白了没有?
(或者由其他的思路也可贴出来看看)
部分代码: <script language="javascript" type="text/javascript" >
function syncServer(strSearch)
{
var str=strSearch;
if(confirm("确定要提交?"))
{
MyAjaxMethods.Test01(str,CallBack);
}
}
function CallBack(res)
{
alert(res.value)
}
</script>
<script language="vbscript" type="text/vbscript" >
sub GETSearch()
Call GETSearch("abc") rs = CreateObject("ADODB.RecordSet")
'代码怎么写 End Sub
</script>
客户端提出查询SQLServer数据库请求,通过Ajax取回数据到客户端的RecordSet,然后绑定到ActiveX Grid中去
思路:
1.使用【AjaxPro2】在网页客户端向网页服务器端发出请求
2.由网页服务器端向SQLServer提交数据请求并且返回数据
3.由服务器端返回数据,填充客户端的【RecordSet】(注:CreateObject("ADODB.RecordSet"))
问题:
以上的第一和第二已经解决,第三点现在返回的数据无法写入RecordSet,不管用vbscript还是javascript 都可以,劳驾写出代码,一定给分,这几天等。补充:
服务器端返回DataSet或者XML或者其他的对象都可以,只要能通过ajax实现客户的RecordSet取得服务器的DataTable就可以,不知道我这样写您明白了没有?
(或者由其他的思路也可贴出来看看)
部分代码: <script language="javascript" type="text/javascript" >
function syncServer(strSearch)
{
var str=strSearch;
if(confirm("确定要提交?"))
{
MyAjaxMethods.Test01(str,CallBack);
}
}
function CallBack(res)
{
alert(res.value)
}
</script>
<script language="vbscript" type="text/vbscript" >
sub GETSearch()
Call GETSearch("abc") rs = CreateObject("ADODB.RecordSet")
'代码怎么写 End Sub
</script>
所有如何你想要即时刷新页面的数据,又不想让页面刷新,请自己写个填充Table的script函数吧。 function FillTable(object data)
{
//画出Table来,或以自己的格式显示数据
}
<?xml version="1.0" encoding="utf-8" ?>
<NewDataSet>
<Table>
<uid>1</uid>
<name>sysobjects</name>
<type>S </type>
<refdate>2002-12-17T14:36:10.0430000+01:00</refdate>
</Table>
<Table>
<uid>1</uid>
<name>sysindexes</name>
<type>S </type>
<refdate>2002-12-17T14:36:10.0430000+01:00</refdate>
</Table>
<Table>
<uid>1</uid>
<name>syscolumns</name>
<type>S </type>
<refdate>2002-12-17T14:36:10.0430000+01:00</refdate>
</Table>
<Table>
<uid>1</uid>
<name>systypes</name>
<type>S </type>
<refdate>2002-12-17T14:36:10.0430000+01:00</refdate>
</Table>
<Table>
<uid>1</uid>
<name>syscomments</name>
<type>S </type>
<refdate>2002-12-17T14:36:10.0430000+01:00</refdate>
</Table>
</NewDataSet>页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestAjaxPro.aspx.cs" Inherits="TestImage.TestAjaxPro" %><!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>
<script language="javascript" type="text/javascript">
<!--
function doTest1()
{
TestImage.TestAjaxPro.GetDataSet(_callback1);
} function _callback1(res)
{
var cols = res.value.Tables[0].Columns.length;
var rows = res.value.Tables[0].Rows.length;
//alert(cols + " cols and " + rows + " rows");
//loop
var TableInnerHtml = "<table border='0'><tr><td>uid</td><td>name</td><td>type</td><td>refdate</td></tr>";
for(var i=0;i< rows;i++)
{
TableInnerHtml += "<tr><td>" + res.value.Tables[0].Rows[i].uid +"</td>";
TableInnerHtml += "<td>" + res.value.Tables[0].Rows[i].name +"</td>";
TableInnerHtml += "<td>" + res.value.Tables[0].Rows[i].type +"</td>";
TableInnerHtml += "<td>" + res.value.Tables[0].Rows[i].refdate +"</td></tr>";
}
TableInnerHtml += "</table>";
//
document.getElementById("Temptable").innerHTML = TableInnerHtml;
}
//-->
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="Temptable">
</div>
<input id="Button1" type="button" value="button" onclick="doTest1();" />
</form>
</body>
</html>后台:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace TestImage
{
public partial class TestAjaxPro : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(TestAjaxPro));//注册 } [AjaxPro.AjaxMethod]
public DataSet GetDataSet()
{
DataSet ds = new DataSet(); ds.ReadXml(System.Web.HttpContext.Current.Server.MapPath("~/test.xml"));
return ds;
}
}
}注意:请不要使用AjaxPro.2.DLL 7.7.31,这个版本对返回dataset有点问题。请使用他前面的版本比如:6.10.6.2
uid name type refdate
1 sysobjects S 2002-12-17T14:36:10.0430000+01:00
1 sysindexes S 2002-12-17T14:36:10.0430000+01:00
1 syscolumns S 2002-12-17T14:36:10.0430000+01:00
1 systypes S 2002-12-17T14:36:10.0430000+01:00
1 syscomments S 2002-12-17T14:36:10.0430000+01:00
我看了大家的帖子,谢谢大家,有部分问题已经解决,9楼说的用xml那速度不知道怎么样,
我在http://topic.csdn.net/u/20081110/02/cc1a10b9-43fa-4fb4-a526-82132bf76115.html还发了一贴,进来的兄弟可以看看。
唉,客户端的RecordSet还是无法得到
只有,自己写script了