关于jquery回调函数的问题 求高手解答

psuqqvfp 2009-12-13 08:03:44
学了jquery,很高兴它把以前繁琐的事情变得简单了,
昨天弄了一下分页,问题来了,不太会分,
servlet输出的数据是
out.println("数据");
数据是从服务器里取的,有很多。
我用$("#xxx").html(data)的方法。把它写到页面的一个div里面,这样子显示到页面上,
可我在做分页时却遇到一个问题,就是需要取出data的一部份显示到页面上,不知道如何弄,
另外问一下:哪位大是可以无私的把自己的jquery分页代码拿出来晒一下,数据一定要从服务器取出才行的,谢谢!
...全文
239 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你建一个分页的存储过程,就可以了。

ALTER proc [dbo].[MyQuery_All]
--定义参数
@whereStr varchar(1000), --查询条件语句
@tableName varchar(100), --表名称
@indexColumn varchar(100), --主键名称
@tableColumns varchar(1000), --列名称
@orderByStr varchar(300), --排序字符串
@pageIndex int, --页索引
@pageSize int, --每页记录数
@isAll int --是否分页查询
as
if(@isAll<>0) --分页查询
begin
declare @sqlStr varchar(1000)
set @sqlStr='select top '+convert(varchar(50),@pageSize)
set @sqlStr=@sqlStr+@tableColumns+' from ['+@tableName+']'
set @sqlStr=@sqlStr+' where '+@whereStr
set @sqlStr=@sqlStr+' and ['+@indexColumn+']'
set @sqlStr=@sqlStr+' not in(select Top '+convert(varchar(50),@pageSize*@pageIndex)+' '+@indexColumn+' from ['+@tableName+'] where '+@whereStr+' '+@orderByStr+') '+@orderByStr
exec(@sqlStr)
--return @sqlStr
end
else --查询全部
begin
declare @strSql varchar(1000)
set @strSql='select '+@tableColumns+' from ['+@tableName+'] where '+@whereStr+@orderByStr
exec(@strSql)
end

/////////////////////////////////////////////////////////////////////////////////
private string GetComment(int storyID, int pageIndex, int stateID)
{
string sql = "MyQuery_All";
int count = GetCommentCount(storyID);
int pageSize = 0;
if (count % 3 == 0)
{
pageSize = count / 2;
}
else
{
pageSize = (count / 3) + 1;

}


StringBuilder tempStr = new StringBuilder();
tempStr.Append("<div class=\"c2_r_c_wypl\">\r\n");
tempStr.Append("<div class=\"c2_r_c_wypl_t\"></div>\r\n");

string WhereStr = "isd='"+storyID+"'"; //查询条件
string TableName = "Comment";//表名称
int PageIndex = pageIndex-1;
int PageSize = 3;
string IndexColumn = "id";//主建
string TableColumns="count";//列名称
string OrderByStr="order by id";
int isAll = 1;
SqlParameter[] paramenters = new SqlParameter[]{

new SqlParameter("@whereStr",WhereStr),
new SqlParameter("@tableName",TableName),
new SqlParameter("@indexColumn",IndexColumn),
new SqlParameter("@tableColumns",TableColumns),
new SqlParameter("@pageIndex",PageIndex),
new SqlParameter("@pageSize",PageSize),
new SqlParameter("@orderByStr",OrderByStr),
new SqlParameter("@isAll",isAll)
};

DataTable datatable = StoryBarWebDAL.SqlDBHelper.GetDataSet(sql, paramenters, CommandType.StoredProcedure);
foreach(DataRow dataRow in datatable.Rows)
{
string gg = dataRow["count"].ToString();
tempStr.Append("<div class=\"c2_r_c_wypl_k\">\r\n");


tempStr.Append("<div class=\"c2_r_c_wypl_con\">");
tempStr.Append("<div id=\"xiao\">'" + gg + "'</div>");
tempStr.Append("</div>\r\n");
tempStr.Append("</div>\r\n");

}

tempStr.Append("</div>\r\n");
tempStr.Append("<div class=\"c2_r_page\">");
if (stateID != 0)
{
if (pageIndex > 1)
{
int upPage = pageIndex - 1;
tempStr.Append("<a class=\"c2_r_page_f\" href=\"javaScript:GetComment(" + storyID.ToString() + "," + upPage.ToString() + ",1);\">< 上一页 </a>\r\n");
}


}
for (int i = 1; i <= pageSize; i++)
{
if (pageIndex == i)
{
tempStr.Append("<div class=\"c2_r_page_dq\">" + i.ToString() + "</div>\r\n");
}
else
{
tempStr.Append("<a class=\"c2_r_page_data\" href=\"javaScript:GetComment(" + storyID.ToString() + "," + i.ToString() + ",1);\">" + i.ToString() + "</a>\r\n");
}
}

if (pageIndex < pageSize)
{
int nextPage = pageIndex + 1;
tempStr.Append("<a class=\"c2_r_page_f\" href=\"javaScript:GetComment(" + storyID.ToString() + "," + nextPage.ToString() + ",1);\">下一页 ></a>\r\n");
}


tempStr.Append("</div>\r\n");
// con.Close();
return tempStr.ToString();

}
/// <summary>
/// 获取当前股市总记录数
/// </summary>
/// <param name="storyID">故事编号</param>
/// <returns></returns>
private int GetCommentCount(int storyID)
{
string str = "select Count(id) from Comment where isd='"+storyID+"'";
SqlConnection con = new SqlConnection(sqlcon);
con.Open();
SqlCommand cmd = new SqlCommand(str, con);
return Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
}
mrshelly 2009-12-13
  • 打赏
  • 举报
回复
// 这里用正则取出 data 里你需要的部分.组合成你需要的 HTML 样式 再


$("#xxx").html(处理后的 data)

介于这种 需要.
我建议,在你的 ajax http 接口中.返回数据以 JSON 方式返回. 这样你就可以随心所欲地使用服务器返回的数据(结构)
道光2008 2009-12-13
  • 打赏
  • 举报
回复
out.print("数据1")
out.print("数据2")
out.print("数据3")
return
就行啦嘛
out.print("数据4")
out.print("数据5")
psuqqvfp 2009-12-13
  • 打赏
  • 举报
回复
可能我还没有说明白,
比如
out.print("数据1")
out.print("数据2")
out.print("数据3")
out.print("数据4")
out.print("数据5")
这是5个数据吧,我只想取出前三个,楼上你的方法貌似不太好使呀
xjun15 2009-12-13
  • 打赏
  • 举报
回复
用substr()方法取字串,得到想要显示的字符串,如:data.substr(*,*),再用$("#xxx").html(data.substr(*,*))显示在页面上

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧