none
GridView1中改变SqlDataSource1.SelectCommand分页无效? RRS feed

  • 问题

  • 一开始GridView1绑定的是“SELECT * FROM 酒店”,改变查询条件后 



    protected void Button1_Click(object sender, EventArgs e) { string commandTemplate = @"SELECT * FROM 酒店 where 酒店类型 like '%经济型%'"; string commadText = string.Format(commandTemplate); SqlDataSource1.SelectCommand = commadText; SqlDataSource1.DataBind(); GridView1.DataBind(); }
    类似这个,GridView1第一页是对的,我再点GridView1的其他页 还是原来的GridView1?
    • 已编辑 yzjiujian 2010年3月3日 7:26 增加说明
    2010年3月3日 7:18

答案

  • 你好!

    这样做

    把 SqlDataSource 的 SelectCommand 改为 下面的方式。改变查询条件时跳转页面 Response.Redirect("yourpage.aspx?Type=xxxx")

    SelectCommand="SELECT * FROM 酒店 where (@Type = '' OR 酒店类型 like '%@Type%')"

    <SelectParameters> <asp:QueryStringParameter DefaultValue="" Name="Name" QueryStringField="Type" Type="String" /> </SelectParameters>

    知识改变命运,奋斗成就人生!
    • 已标记为答案 yzjiujian 2010年3月5日 0:29
    2010年3月4日 2:11
    版主

全部回复

  • 你这只是进行了绑定

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
           GridView1.PageIndex = e.NewPageIndex;
            bind();//对GridView进行再次绑定,
        }

    努力+方法=成功
    2010年3月3日 7:27
  • 你这只是进行了绑定

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
           GridView1.PageIndex = e.NewPageIndex;
            bind();//对GridView进行再次绑定,
        }

    努力+方法=成功

    可是这样在没有点击按钮时点分页 是不对的,显示的是按钮以后的分页
    2010年3月3日 8:34
  • 你好!

    这样做

    把 SqlDataSource 的 SelectCommand 改为 下面的方式。改变查询条件时跳转页面 Response.Redirect("yourpage.aspx?Type=xxxx")

    SelectCommand="SELECT * FROM 酒店 where (@Type = '' OR 酒店类型 like '%@Type%')"

    <SelectParameters> <asp:QueryStringParameter DefaultValue="" Name="Name" QueryStringField="Type" Type="String" /> </SelectParameters>

    知识改变命运,奋斗成就人生!
    • 已标记为答案 yzjiujian 2010年3月5日 0:29
    2010年3月4日 2:11
    版主
  • 你只绑定了,没写分页的代码,楼上是正解
    咯咯
    2010年3月4日 3:28
  • 谢谢大家

    2010年3月5日 0:30