今天我太郁闷了,搞不定xmlhttp无刷新之获取数据库数据我的问题是这样的:我打算使用xmlhttp无刷新技术,将数据库里面的三个字段的数据,显示到客户端的一个DIv里面;以前有一位大侠曾经给我一个实例,我会了,能运行了,但是,现在,将那实例搬到这个页面,居然不成功,我就纳闷了,所以才再次请教各位高手!我的环境是:vs2005+sql2000+c#我所使用的页面是:①显示数据库页面aspx②JS页面③后台程序页面ashx希望高手教教我,如何利用这三个页面进行无刷新,将数据库两个字段的内容,显示到aspx页面中的某个DIV里面太谢谢了!在线等待…
function sendAJAX()
{
XmlHttp.Open("POST","???.ashx",true);
XmlHttp.send(null);
XmlHttp.onreadystatechange=ServerProcess;
}
function ServerProcess()
{
if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete')
{
document.getElementById('???').innerHTML =XmlHttp.responsetext;
}
}大致上这样吧?
JavaScriptSerializer serializer = new JavaScriptSerializer();
string jsonEmp = serializer.Serialize(theobject);
context.Response.Write(jsonEmp);
至于客户端如何反序列化得到这个对象嘛,那我就无能为力了因为我一般是用.net的AJAX框架的,有一个getobject的方法很方便。
protected void Page_Load(object sender, EventArgs e)
{
string searchCondition = (Request.QueryString["key"]==null)?"".Request.QueryString["key"].ToString();
DataTable dt=GetDataTable(searchCondition);
string response=string.Empty;
for(int i=0;i<dt.Rows.Count;i++)
{
response+=dt.Rows[i][0].ToString()+","+dt.Rows[i][1].ToString()+","+dt.Rows[i][2].ToString()+";";
}
if(response.EndsWith(";"))
{
response=response.Substring(0,response.Length-1);
}
Response.Write(response);
Response.End();
} private string connString = "数据库连接字符串";
private DataTable GetDataTable(string searchCondition)
{
SqlConnection conn = new SqlConnection(connString);
string query = string.Format(@"select id,name,address from table1 where id='{0}'",searchCondition);
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
try
{
conn.Open();
adapter.Fill(dt);
return dt;
}
catch
{
throw;
}
finally
{
cmd.Dispose();
conn.Close();
}
}
function ServerProcess()
{
if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete')
{
var response=XmlHttp.responseText;
if(response!="")
{
var array=response.split(";");
for(var i=0;i<array.length;i++)
{
var id=array[i].split(",")[0];
var name=array[i].split(",")[1];
var address=array[i].split(",")[2];
//得到数据
alert(id+name+address);
//下面不用说了吧
}
}
}
}