基础较差,不太理解ajax的实现。目前情况如下:
前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxSearch.aspx.cs" Inherits="ajax.ajaxSearch" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <script type="text/javascript" src="/jquery.js"></script> <script type="text/javascript"> function search() { var txtKey = $("#txtKey").val(); $.ajax({ type: "Post", url: "ajaxSearch.aspx/search", data: "{txtKey:'" + txtKey + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { }, error: function (err) { } }) } </script> <title></title> </head> <body> <form id="form1" runat="server"> <div> <input type="text" id="txtKey" /> <input type="button" id ="btn" onclick="search()" value="查询"/> </div> <span>--------------------------------------------</span> <div> <asp:GridView ID="gvSearch" runat="server" AutoGenerateColumns="False"> <Columns> <asp:BoundField DataField="PrizedName" HeaderText="奖品名称" /> <asp:BoundField DataField="PrizedNumber" HeaderText="奖品数量"/> </Columns> </asp:GridView> </div> </form> </body> </html>
后台代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Services; using System.Data; using System.Data.SqlClient; using System.Data.OleDb; using System.Data.Odbc; using System.Data.Common; using log4net; using System.Configuration; namespace ajax { public partial class ajaxSearch : System.Web.UI.Page { // log日志 private static ILog LOG = LogManager.GetLogger(typeof(ajaxSearch)); protected void Page_Load(object sender, EventArgs e) { } public DataTable CreateData(string SQLText) { string cs = ConfigurationManager.ConnectionStrings["SQL"].ConnectionString; DataSet ds = new DataSet(); SqlConnection connection = new SqlConnection(cs); try { // 读取配置文件 SqlCommand command = new SqlCommand(SQLText, connection); SqlDataAdapter mDataAdapter = new SqlDataAdapter(SQLText, connection); connection.Open(); mDataAdapter.Fill(ds); return ds.Tables[0]; } catch (Exception e) { LOG.Error(e.Message); return null; } finally { connection.Close(); } } public void bind(string txtKey) { DataTable dt = new DataTable(); if (string.IsNullOrEmpty(txtKey)) { dt = CreateData("select PrizedName ,PrizedNumber from HD_Prizes order by PrizedName"); } else { dt = CreateData("select PrizedName ,PrizedNumber from HD_Prizes where PrizedName like '%" + txtKey + "%' order by PrizedName"); } gvSearch.DataSource = dt; gvSearch.DataBind(); } [WebMethod] public static int search(string txtKey) { ajaxSearch bll = new ajaxSearch(); try { return 0; } catch (Exception ex) { return 1; } } } }
在写AJAX方法的时候静态调用动态方法需要引用
我就用了ajaxSearch bll = new ajaxSearch();把后台查询DB的CS给引过来了,
但是这样就找不到gvSearch这个前台控件了,大概原因是因为我把对应的后台跟重新实例化了, 但是我想实现这种动态查询刷新该如何解决。