.aspx里有
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>我想Ajax实现在textbox中输入内容,DataGrid1动态显示记录
select * from rs_jb where id_i=(TextBox1输入的值)我的代码.cs
==================
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterTypeForAjax(typeof(Ajax1));
if (!Page.IsPostBack)
{
this.TextBox1.Attributes.Add("onchange", "cityResult();");
this.DataGrid1.Attributes.Add("onclick", "getData();");
}
}[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public void GetCityList(int provinceid)
{
string sql = "select * from rs_jb where id_i ="provinceid;
this.DataGrid1.DataSource=GetDataSet(sql);
this.DataGrid1.DataBind();
}
public static DataSet GetDataSet(string sql)
{
         string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
SqlDataAdapter sda = new SqlDataAdapter(sql, ConnectionString);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
==================================
.aspx
<SCRIPT language="javascript">            
function cityResult() 

var city=document.getElementById("TextBox1");
Ajax1.GetCityList(city.value);
}</SCRIPT>
======================================代码不对 不知如何去写 求解答

解决方案 »

  1.   

    后台的Ajax方法里面不能使用页面的控件
    [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
    public void GetCityList(int provinceid)
    {
    string sql = "select * from rs_jb where id_i ="provinceid;
    this.DataGrid1.DataSource=GetDataSet(sql);
    this.DataGrid1.DataBind();
    }
    你上面的方法里面出现了this.DataGrid1,而运行好的页面里面是没有"DataGrid1"这个id的控件的。
      

  2.   

    后台的Ajax方法是在前台的JavaScript里面调用的
    页面运行时把Web控件都转换成了Html标记,DataGrid1也被转换成Table了
      

  3.   

    先谢zhjg136(天星)的回复我根据 TextBox的值来绑定DataGrid1 应改如何更改呢