初次使用AjaxPro,现在遇到问题。在页面上有两个TextBox控件,一个Html的button控件,现在我要通过在TextBox2中输入的值来通过后台调用方法,从数据库中取出对应的值显示到TextBox1中,具体代码如下:
服务器端:
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default),this.Page);
if (!Page.IsPostBack)
{
this.getData();
}
} [AjaxPro.AjaxMethod]
public string searchData()
{
SqlConnection cn = new SqlConnection("server= (local);database=spcontainermanage;trusted_connection=yes");
cn.Open(); SqlCommand cm = new SqlCommand("select driverphone from carInfo where carNum='" + this.TextBox2.Text.Trim() + "'", cn);
string strPhone = cm.ExecuteScalar().ToString();
return strPhone;
} 客户端:
function getSearchData()
{
var obj=ajaxproTest._Default.searchData();
alert(obj.value);
} 按钮事件:
<input id="Button3" type="button" value="button" onclick="getSearchData()" /> 为什么取出来的值总是为null?该如何改正,请教高手。
服务器端:
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default),this.Page);
if (!Page.IsPostBack)
{
this.getData();
}
} [AjaxPro.AjaxMethod]
public string searchData()
{
SqlConnection cn = new SqlConnection("server= (local);database=spcontainermanage;trusted_connection=yes");
cn.Open(); SqlCommand cm = new SqlCommand("select driverphone from carInfo where carNum='" + this.TextBox2.Text.Trim() + "'", cn);
string strPhone = cm.ExecuteScalar().ToString();
return strPhone;
} 客户端:
function getSearchData()
{
var obj=ajaxproTest._Default.searchData();
alert(obj.value);
} 按钮事件:
<input id="Button3" type="button" value="button" onclick="getSearchData()" /> 为什么取出来的值总是为null?该如何改正,请教高手。
public string searchData(string str)
{
SqlConnection cn = new SqlConnection("server= (local);database=spcontainermanage;trusted_connection=yes");
cn.Open(); SqlCommand cm = new SqlCommand("select driverphone from carInfo where carNum='" + str + "'", cn);
string strPhone = cm.ExecuteScalar().ToString();
return strPhone;
} 客户端:
function getSearchData()
{
//使用var txt=document. 方法获取textbox
var obj=ajaxproTest._Default.searchData(txt.value);
alert(obj.value);
}
[AjaxPro.AjaxMethod]
public string searchData(string str)
{
SqlConnection cn = new SqlConnection("server= (local);database=spcontainermanage;trusted_connection=yes");
cn.Open(); SqlCommand cm = new SqlCommand("select driverphone from carInfo where carNum='" + str + "'", cn);
string strPhone = cm.ExecuteScalar().ToString();
return strPhone;
}
客户端: function getSearchData()
{
var txt=document.getElementById("文本框ID");
var obj=ajaxproTest._Default.searchData(txt.value);
alert(obj.value);
}
在无刷新的情况下,服务器端无法直接得到textbox的text,就象你点击服务器端按钮在其click事件里取得一个textbox的text值,这是可以取到的,但是你注意到没有,页面是刷新的了,但是当你通过客户端调用ajax服务器方法时,页面没有刷新,虽然此方法执行了,但是这个TextBox并没有回发参数,也就是没有向服务器端提交其text值,所以服务器里的ajax方法得不到值,必须通过客户端提供给参数!
里面不光包含结果,还有error等信息。
欢迎有空到我博客http://www.flywud.com探讨
public string searchData(string str)
{
SqlConnection cn = new SqlConnection("server= (local);database=spcontainermanage;trusted_connection=yes");
cn.Open(); SqlCommand cm = new SqlCommand("select driverphone from carInfo where carNum='" + str.Replace("'","''") + "'", cn);
string strPhone = cm.ExecuteScalar().ToString();
cn.Close();
return strPhone;
}
function getSearchData()
{
var obj=ajaxproTest._Default.searchData();
alert(obj.value);
} 取 var obj=ajaxproTest._Default.searchData().value;
不然会取成object类型