public partial class user_user_log : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Color color = Color.FromArgb(51, 133, 209);
GridView1.HeaderStyle.BackColor = color;
string sql;
sql = "select top 30 * from tab_userlog where userlog_userid='" + Session["userid"] + "' order by userlog_id desc ";
SqlDataSource1.SelectCommand = sql;
}
protected void Button1_Click(object sender, EventArgs e)
{
string sql,tx1,tx2;
tx1=PageValidate.GetSafeStr(TextBox1.Text.ToString());
tx2 = PageValidate.GetSafeStr(TextBox2.Text.ToString());
sql = "select * from tab_userlog where userlog_userid='"+Session["userid"]+"' ";
if (tx1 != "" && tx2 != "")
{
DateTime etime=Convert.ToDateTime(tx2);
sql = sql + " and userlog_date between '" + tx1 + "' and '" + (etime) + 1 + "' ";
}
sql = sql + " order by userlog_id desc ";
SqlDataSource1.SelectCommand = sql;
}
我用gridview自带的分页,想在页面第一次加载的时候,显示前30条记录,然后再点击按钮查询记录。
问题是,每次单击按钮查询出相应的记录,再点下一页又会变成无条件查询(像页面刚加载的时候一样)、
我有把
Page_Load(object sender, EventArgs e)
string sql;
sql = "select top 30 * from tab_userlog where userlog_userid='" + Session["userid"] + "' order by userlog_id desc ";
SqlDataSource1.SelectCommand = sql;
这一段写在!ispostback里面,但是这样页面加载显示数据后,点下一页没有数据,该怎么弄呢?
怎么做呢?
{
protected void Page_Load(object sender, EventArgs e)
{
Color color = Color.FromArgb(51, 133, 209);
GridView1.HeaderStyle.BackColor = color;
string sql;
sql = "select top 30 * from tab_userlog where userlog_userid='" + Session["userid"] + "' order by userlog_id desc ";
SqlDataSource1.SelectCommand = sql;
}
protected void Button1_Click(object sender, EventArgs e)
{
string sql,tx1,tx2;
tx1=PageValidate.GetSafeStr(TextBox1.Text.ToString());
tx2 = PageValidate.GetSafeStr(TextBox2.Text.ToString());
sql = "select * from tab_userlog where userlog_userid='"+Session["userid"]+"' ";
if (tx1 != "" && tx2 != "")
{
DateTime etime=Convert.ToDateTime(tx2);
sql = sql + " and userlog_date between '" + tx1 + "' and '" + (etime) + 1 + "' ";
}
sql = sql + " order by userlog_id desc ";
SqlDataSource1.SelectCommand = sql;
}
我用gridview自带的分页,想在页面第一次加载的时候,显示前30条记录,然后再点击按钮查询记录。
问题是,每次单击按钮查询出相应的记录,再点下一页又会变成无条件查询(像页面刚加载的时候一样)、
我有把
Page_Load(object sender, EventArgs e)
string sql;
sql = "select top 30 * from tab_userlog where userlog_userid='" + Session["userid"] + "' order by userlog_id desc ";
SqlDataSource1.SelectCommand = sql;
这一段写在!ispostback里面,但是这样页面加载显示数据后,点下一页没有数据,该怎么弄呢?
怎么做呢?
{
protected void Page_Load(object sender, EventArgs e)
{
//设置分页的图片按钮,这些都可以在控件的属性表上的pagersetting里设置
if (!IsPostBack)
{
GridView1.Caption = "这是一个GridView的小实验";
//Caption属性类似于表名,显示在控件的正上方。
GridView1.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast;
GridView1.PagerSettings.NextPageImageUrl = "img/next.gif";
GridView1.PagerSettings.PreviousPageImageUrl = "img/pre.gif";
GridView1.PagerSettings.FirstPageImageUrl = "img/first.gif";
GridView1.PagerSettings.LastPageImageUrl = "img/last.gif";
GridView1.PageSize = 10; //每页最多显示10条记录;
BindData();
}
}
private void BindData()
{
//将数据部署到GridView中
string Constr = "server=localhost; uid=sa;pwd=123456;database=NorthWind";
string sqlstr = "select * from products";
SqlConnection con = new SqlConnection(Constr);
SqlDataAdapter ad = new SqlDataAdapter(sqlstr, con);
DataSet ds = new DataSet();
ad.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView1_PageIndexChanged(object sender, EventArgs e)
{
//进行分页之后,重新部署数据
BindData();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
//分页完成之前
GridView1.PageIndex = e.NewPageIndex;
}
protected void GridView1_DataBound(object sender, EventArgs e)
{
//添加分页码显示
GridViewRow bottomPagerRow = GridView1.BottomPagerRow;
Label bottomLabel = new Label();
bottomLabel.Text = "目前所在分页:(" + (GridView1.PageIndex + 1) + "/" + GridView1.PageCount + ")";
bottomPagerRow.Cells[0].Controls.Add(bottomLabel);
}
}
<SelectParameters>
<asp:SessionParameter
Name="userid"
SessionField="userid"
DefaultValue="5" />
</SelectParameters>SQL中用@userid占位