我用的是AjaxPro.2.dll,然后我想点击那个 “无刷新更新” 那个按钮,要实现 无刷新 修改表中的内容,可是却实现不了,大家帮帮看看啊,如果 public bool gengxin() 方法里面只写上 return true,就能弹出 更新成功,说明我配置没有错啊,但是他就是不执行我的SQL语句,为啥??是不是可以帮我解决一下,或者给我一个简单的例子看看啊,我自己找了很多资料,仍然不行拜托了,分不多,只能发自肺腑说声 非常感谢!<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!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 type="text/javascript">
function gx()
{
Default2.gengxin(callback);
}
function callback(res)
{
if(res.value==true)
{
alert('更新成功');
}
}
</script></head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<br />
<asp:TextBox ID="TextBox3" runat="server" OnTextChanged="TextBox3_TextChanged"></asp:TextBox><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="普通更新" /><br />
<br />
<input id="Button2" type="button" value="无刷新更新" onclick="return gx()"/></div>
</form>
</body>
</html>
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;using AjaxPro;public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(Default2));
}
[AjaxPro.AjaxMethod]
public bool gengxin()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["testConn"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("Proc_UpdateTest", conn);
cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] param = new SqlParameter[3]; param[0] = new SqlParameter("@user", SqlDbType.NChar, 10);
param[0].Value = TextBox1.Text;
param[1] = new SqlParameter("@paper", SqlDbType.NChar, 10);
param[1].Value = TextBox2.Text;
param[2] = new SqlParameter("@score", SqlDbType.NChar, 10);
param[2].Value = TextBox3.Text;
foreach (SqlParameter Parameter in param)
cmd.Parameters.Add(Parameter);
cmd.ExecuteNonQuery();
//SqlCommand cmd = new SqlCommand("update Paper set paper='" + TextBox2.Text + "',score='" + TextBox3.Text+"' where user='" + TextBox1.Text + "'",conn);
//cmd.ExecuteNonQuery();
conn.Close();
return true;
} protected void Button1_Click(object sender, EventArgs e)
{
gengxin();
}
protected void TextBox3_TextChanged(object sender, EventArgs e)
{ }
}
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
function gx()
{
Default2.gengxin(callback);
}
function callback(res)
{
if(res.value==true)
{
alert('更新成功');
}
}
</script></head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<br />
<asp:TextBox ID="TextBox3" runat="server" OnTextChanged="TextBox3_TextChanged"></asp:TextBox><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="普通更新" /><br />
<br />
<input id="Button2" type="button" value="无刷新更新" onclick="return gx()"/></div>
</form>
</body>
</html>
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;using AjaxPro;public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(Default2));
}
[AjaxPro.AjaxMethod]
public bool gengxin()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["testConn"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("Proc_UpdateTest", conn);
cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] param = new SqlParameter[3]; param[0] = new SqlParameter("@user", SqlDbType.NChar, 10);
param[0].Value = TextBox1.Text;
param[1] = new SqlParameter("@paper", SqlDbType.NChar, 10);
param[1].Value = TextBox2.Text;
param[2] = new SqlParameter("@score", SqlDbType.NChar, 10);
param[2].Value = TextBox3.Text;
foreach (SqlParameter Parameter in param)
cmd.Parameters.Add(Parameter);
cmd.ExecuteNonQuery();
//SqlCommand cmd = new SqlCommand("update Paper set paper='" + TextBox2.Text + "',score='" + TextBox3.Text+"' where user='" + TextBox1.Text + "'",conn);
//cmd.ExecuteNonQuery();
conn.Close();
return true;
} protected void Button1_Click(object sender, EventArgs e)
{
gengxin();
}
protected void TextBox3_TextChanged(object sender, EventArgs e)
{ }
}
楼上说的对,
你 param[0].Value = TextBox1.Text;这样取值不对,因为这是后是前台客户端按钮通过js传递值到后台处理,页面没有PostBack,所以通过TextBox.Text是取不到值的.
不信你可以直接给3个param赋值(如:param[0].Value ="zhangsan";)看看!
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!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 type="text/javascript">
function gx()
{
var u=document.getElementById("TextBox1").value;
var p=document.getElementById("TextBox2").value;
var s=document.getElementById("TextBox3").value;
Default2.gengxin(u,p,s,callback);
}
function callback(res)
{
if(res.value==true)
{
alert('更新成功');
}
}
</script></head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<br />
<asp:TextBox ID="TextBox3" runat="server" OnTextChanged="TextBox3_TextChanged"></asp:TextBox><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="普通更新" /><br />
<br />
<input id="Button2" type="button" value="无刷新更新" onclick="return gx()"/></div>
</form>
</body>
</html>
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;using AjaxPro;public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(Default2));
}
[AjaxPro.AjaxMethod]
public bool gengxin(string u,string p,string s)
{ SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["testConn"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("Proc_UpdateTest", conn);
cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] param = new SqlParameter[3]; param[0] = new SqlParameter("@user", SqlDbType.NChar, 10);
param[0].Value = u;
param[1] = new SqlParameter("@paper", SqlDbType.NChar, 10);
param[1].Value = p;
param[2] = new SqlParameter("@score", SqlDbType.NChar, 10);
param[2].Value = s;
foreach (SqlParameter Parameter in param)
cmd.Parameters.Add(Parameter);
cmd.ExecuteNonQuery();
//SqlCommand cmd = new SqlCommand("update Paper set paper='" +p + "',score='" + s+"' where user='" +u + "'",conn);
//cmd.ExecuteNonQuery();
conn.Close();
return true;
} protected void Button1_Click(object sender, EventArgs e)
{
gengxin(TextBox1.Text,TextBox2.Text,TextBox3.Text);
}
protected void TextBox3_TextChanged(object sender, EventArgs e)
{
}
}