JQUERY ajax提交数据到后台,进展数据库查询,然后重新绑定GridView
JQUERY ajax提交数据到后台,进行数据库查询,然后重新绑定GridView.
我在前台放了一个input,type=button,点击后触发下面的ajax提交数据到后台。后台处理后对一个GridView进行数据绑定。
前台代码如下:
params = JSON.stringify(obj);
$.ajax({
type: "Post",
url: "/aspx_consumption/Consumption_Home.aspx/AdvanceSearch",
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(date);
},
error: function (err) {
alert(err);
}
});
后台也没问题:
[WebMethod]
public static DataSet AdvanceSearch(string Factory_Style_No, string Customer_Style_No, string Style_Type, string Writer, string Start, string End, string pageSize, string pageIndex)
{
DataSet ds = new DataSet();
string connStr = @System.Configuration.ConfigurationManager.ConnectionStrings["Sample_Room_ProgressConnectionString"].ToString();
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
//cmd.CommandText = "SELECT Consumption_ID,Consumption_Factory_Style_No,Customer_Style_No,Quantity,Writer,Sample_Type,Write_Date,Confirmation,Approval FROM [Sample_Room_Progress].[dbo].[Consumption] where Factory_Style_No like '%'+@Factory_Style_No+'%' AND Customer_Style_No like '%'+@Customer_Style_No+'%' AND Sample_Type like '%'+@Sample_Type+'%' AND Writer like '%'+@Writer+'%' BETWEEN Write_Date >=@Start AND Write_Date<=@End order by Write_Date DESC";
cmd.CommandText = "SELECT Consumption_ID,Consumption_Factory_Style_No,Customer_Style_No,Quantity,Writer,Sample_Type,Write_Date,Confirmation,Approval FROM [Sample_Room_Progress].[dbo].[Consumption] where Factory_Style_No like '%'+@Factory_Style_No+'%' AND Customer_Style_No like '%'+@Customer_Style_No+'%' AND Sample_Type like '%'+@Sample_Type+'%' AND Writer like '%'+@Writer+'%' AND Write_Date between @Start and @End order by Write_Date DESC";
cmd.Parameters.Add("@Factory_Style_No", SqlDbType.NVarChar);
cmd.Parameters["@Factory_Style_No"].Value = Factory_Style_No;
cmd.Parameters.Add("@Customer_Style_No", SqlDbType.NVarChar);
cmd.Parameters["@Customer_Style_No"].Value = Customer_Style_No;
cmd.Parameters.Add("@Sample_Type", SqlDbType.NVarChar);
cmd.Parameters["@Sample_Type"].Value = Style_Type;
cmd.Parameters.Add("@Writer", SqlDbType.NVarChar);
cmd.Parameters["@Writer"].Value =Writer;
cmd.Parameters.Add("@Start", SqlDbType.DateTime);
if (Start == "")
{
cmd.Parameters["@Start"].Value = DBNull.Value;
}
else
{
cmd.Parameters["@Start"].Value = Start;
}
cmd.Parameters.Add("@End", SqlDbType.DateTime);
if (End == "")
{
cmd.Parameters["@End"].Value = DBNull.Value;
}
else
{
cmd.Parameters["@End"].Value = End;
}
SqlDataAdapter ad = new SqlDataAdapter();
ad.SelectCommand = cmd;
int indexNum = Convert.ToInt32(pageIndex);
int SizeNum = Convert.ToInt32(pageSize);
ad.Fill(ds, indexNum, SizeNum, "Consumption");
return ds;
}
但是用Jquery ajax提交数据,后台必需要静态方法似乎没法操作ASP.NET控件。有什么办法可以解决?难道我只能用asp.net控件吗?
------解决思路----------------------
你都用ajax了 还用什么GridView??
直接用table表格就是了。
------解决思路----------------------
//重新绑定Gridview数据
StudentDataBind(name,userCode,gender,startTime,endTime,stuClass);
//将数据传输到前台
System.IO.StringWriter stringWrite = new StringWriter();
System.Web.UI.HtmlTextWriter writer = new System.Web.UI.HtmlTextWriter(stringWrite);
GV_history.RenderControl(writer);
String Result = stringWrite.ToString();
Response.Write(Result);
Response.End();
//前台JQ重新绑定
success: function (data) {
$('#GV_history').html(data);
}
------解决思路----------------------
新建一个aspx页面,页面上只留一个Gv控件,然后将数据绑定,然后直接返回整个页面,直接append就行,我用rep做的,思路一样,只是不同控件,你看下我的代码
请求方法:
var para = { pageindex: $("#pageindex").val() };
$.ajax({
type: "Get",
url: "/Common/ajax.aspx?" + $.param(para),
cache: false,
success: function(result) {
if (result != "" && result.length > 2) {
$(el).append(result);
}
else {
pullUpEl.querySelector('.pullUpLabel').innerHTML = '已加载至最后';
}
}
});
被请求页面前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajax.aspx.cs" Inherits="WAP.CommonPage.ajax" %>
<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<li><a href="/Car.aspx?id=<%# Eval("ID") %>">
<div class="img_box">
<%#IMGhtml(Eval("Img"), Eval("Name"))%></div>
<div class="txt_box">
<%# Eval("Name")%></div>
</a></li>
</ItemTemplate>
</asp:Repeater>
被请求页的后台就是一个控件绑定,你应该知道怎么写了吧
------解决思路----------------------
你要用GridView,就可以用UpdatePanel.
你要用纯js的话,那你就自己构建table
------解决思路----------------------
自己table表格或者用.net自带的ajax控件实现
------解决思路----------------------
用 js 刷新页面即可。
------解决思路----------------------
可以使用jquery easyui datagrid , 有完整的代码可以参考。http://blog.csdn.net/chinacsharper/article/details/39523053
我在前台放了一个input,type=button,点击后触发下面的ajax提交数据到后台。后台处理后对一个GridView进行数据绑定。
前台代码如下:
params = JSON.stringify(obj);
$.ajax({
type: "Post",
url: "/aspx_consumption/Consumption_Home.aspx/AdvanceSearch",
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(date);
},
error: function (err) {
alert(err);
}
});
后台也没问题:
[WebMethod]
public static DataSet AdvanceSearch(string Factory_Style_No, string Customer_Style_No, string Style_Type, string Writer, string Start, string End, string pageSize, string pageIndex)
{
DataSet ds = new DataSet();
string connStr = @System.Configuration.ConfigurationManager.ConnectionStrings["Sample_Room_ProgressConnectionString"].ToString();
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
//cmd.CommandText = "SELECT Consumption_ID,Consumption_Factory_Style_No,Customer_Style_No,Quantity,Writer,Sample_Type,Write_Date,Confirmation,Approval FROM [Sample_Room_Progress].[dbo].[Consumption] where Factory_Style_No like '%'+@Factory_Style_No+'%' AND Customer_Style_No like '%'+@Customer_Style_No+'%' AND Sample_Type like '%'+@Sample_Type+'%' AND Writer like '%'+@Writer+'%' BETWEEN Write_Date >=@Start AND Write_Date<=@End order by Write_Date DESC";
cmd.CommandText = "SELECT Consumption_ID,Consumption_Factory_Style_No,Customer_Style_No,Quantity,Writer,Sample_Type,Write_Date,Confirmation,Approval FROM [Sample_Room_Progress].[dbo].[Consumption] where Factory_Style_No like '%'+@Factory_Style_No+'%' AND Customer_Style_No like '%'+@Customer_Style_No+'%' AND Sample_Type like '%'+@Sample_Type+'%' AND Writer like '%'+@Writer+'%' AND Write_Date between @Start and @End order by Write_Date DESC";
cmd.Parameters.Add("@Factory_Style_No", SqlDbType.NVarChar);
cmd.Parameters["@Factory_Style_No"].Value = Factory_Style_No;
cmd.Parameters.Add("@Customer_Style_No", SqlDbType.NVarChar);
cmd.Parameters["@Customer_Style_No"].Value = Customer_Style_No;
cmd.Parameters.Add("@Sample_Type", SqlDbType.NVarChar);
cmd.Parameters["@Sample_Type"].Value = Style_Type;
cmd.Parameters.Add("@Writer", SqlDbType.NVarChar);
cmd.Parameters["@Writer"].Value =Writer;
cmd.Parameters.Add("@Start", SqlDbType.DateTime);
if (Start == "")
{
cmd.Parameters["@Start"].Value = DBNull.Value;
}
else
{
cmd.Parameters["@Start"].Value = Start;
}
cmd.Parameters.Add("@End", SqlDbType.DateTime);
if (End == "")
{
cmd.Parameters["@End"].Value = DBNull.Value;
}
else
{
cmd.Parameters["@End"].Value = End;
}
SqlDataAdapter ad = new SqlDataAdapter();
ad.SelectCommand = cmd;
int indexNum = Convert.ToInt32(pageIndex);
int SizeNum = Convert.ToInt32(pageSize);
ad.Fill(ds, indexNum, SizeNum, "Consumption");
return ds;
}
但是用Jquery ajax提交数据,后台必需要静态方法似乎没法操作ASP.NET控件。有什么办法可以解决?难道我只能用asp.net控件吗?
------解决思路----------------------
你都用ajax了 还用什么GridView??
直接用table表格就是了。
------解决思路----------------------
//重新绑定Gridview数据
StudentDataBind(name,userCode,gender,startTime,endTime,stuClass);
//将数据传输到前台
System.IO.StringWriter stringWrite = new StringWriter();
System.Web.UI.HtmlTextWriter writer = new System.Web.UI.HtmlTextWriter(stringWrite);
GV_history.RenderControl(writer);
String Result = stringWrite.ToString();
Response.Write(Result);
Response.End();
//前台JQ重新绑定
success: function (data) {
$('#GV_history').html(data);
}
------解决思路----------------------
新建一个aspx页面,页面上只留一个Gv控件,然后将数据绑定,然后直接返回整个页面,直接append就行,我用rep做的,思路一样,只是不同控件,你看下我的代码
请求方法:
var para = { pageindex: $("#pageindex").val() };
$.ajax({
type: "Get",
url: "/Common/ajax.aspx?" + $.param(para),
cache: false,
success: function(result) {
if (result != "" && result.length > 2) {
$(el).append(result);
}
else {
pullUpEl.querySelector('.pullUpLabel').innerHTML = '已加载至最后';
}
}
});
被请求页面前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajax.aspx.cs" Inherits="WAP.CommonPage.ajax" %>
<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<li><a href="/Car.aspx?id=<%# Eval("ID") %>">
<div class="img_box">
<%#IMGhtml(Eval("Img"), Eval("Name"))%></div>
<div class="txt_box">
<%# Eval("Name")%></div>
</a></li>
</ItemTemplate>
</asp:Repeater>
被请求页的后台就是一个控件绑定,你应该知道怎么写了吧
------解决思路----------------------
你要用GridView,就可以用UpdatePanel.
你要用纯js的话,那你就自己构建table
------解决思路----------------------
自己table表格或者用.net自带的ajax控件实现
------解决思路----------------------
用 js 刷新页面即可。
------解决思路----------------------
可以使用jquery easyui datagrid , 有完整的代码可以参考。http://blog.csdn.net/chinacsharper/article/details/39523053