定时刷新DataGrid
我用AjaxPro,后台代码
[AjaxPro.AjaxMethod]
private string ShowData()
{
string sql= "select * from "+TableName+(sefileid!=0? " where SEFile_ID= "+sefileid: " ");
DataTable dt=db.OpenTable(sql);
dgData.DataSource=dt;
dgData.DataBind();
System.Text.StringBuilder sb=new System.Text.StringBuilder();
System.IO.StringWriter sw=new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter htw=new HtmlTextWriter(sw);
dgData.RenderControl(htw);
string s=sb.ToString();
return s;
前台代码
function Call_Show()
{
var cc=document.getElementById( "dgData ");
cc.innerHTML=SEFile.ShowData().value;
}
function Call_Server()
{
SEFile_ShowData();
Call_Show();
}
我怎么定时刷新DataGrid??
我用window.onload=setInterval( "Call_Server() ",1000);
setTimtOut都不行 提示网页有错误??
该怎么解决
[解决办法]
我来顶一下
[解决办法]
我也是看ajax实战,看完后有段时间没用ajaxpro了,你的前台代码cc.innerHTML=SEFile.ShowData().value;我记得ajaxpro不是这样掉用吧,SEFile.ShowData(Call_Show_callback);然后再写一个Call_Show_callback(res){cc.innerHTML=res.value;},还有,以前用的时候听人说ajaxpro中类似于cc.innerHTML=SEFile.ShowData()这样的调用不是真正的异步,听说而已。提示未定义你是否注册了SEFile,同时好像在2003中要写成 你的项目名.SEFile.ShowData ,说错务怪啊
[解决办法]
类代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace MyAJAX
{
/// <summary>
///
/// </summary>
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(MyAJAX.Test));
}
[AjaxPro.AjaxMethod()]
public void GetSubCategory(int iCategoryID)
{
Random rand = new Random();
SqlConnection conn = null;
try
{
conn = new SqlConnection( "Data Source=(local); User ID=sa;Password=hztsa; Initial Catalog=test ");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = string.Format( "Update Video Set DownLoadCount = DownLoadCount + 1 ");
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
string str = ex.Message;
}
finally
{
if (conn != null && conn.State != ConnectionState.Closed)
{
conn.Close();
}
}
string[] testStr = new string[10000];
for (int i = 0; i < testStr.Length; i++)
{
testStr[i] = "fdd ";
}
// System.Threading.Thread.Sleep(500 + rand.Next(1000));
}
}
}
页面:
<%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "Test.aspx.cs " Inherits= "MyAJAX.Test " %>
<!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> Untitled Page </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<a href= "# " onclick= "javascript:AddDownLoad(); "> 下载 </a>
</form>
<script>
function AddDownLoad() {
// 方法GetSubCategory是在后台中被声明为AjaxMethod()的方法.
// 在方法GetSubCategory所有的参数后面,再多加上一个方法名GetSubCategory_backcall做参数,
// 如果方法GetSubCategory有返回值,它的返回值将被赋给方法GetSubCategory_backcall的第一个参数
MyAJAX.Test.GetSubCategory(5,GetSubCategory_backcall);
}
// 此方法的名称是任意的,参数的个数和名称也是任意的,但AJAX方法的
// 返回值只会被赋给第一个参数
function GetSubCategory_backcall(response)
{
var dt = response.value;
alert(dt);
}
</script>
</body>
</html>