页面一个gridview显示数据,一个dropdownlist显示分类,选择不同的分类时,gridview显示不同的数据.用的是gridview自带的分页,每次选择分类在点分页的页码,显示的数据都是page_load中没有分类的数据,后来从网上查用ajax+updatepanel就可以了,我安装了ajax1.0,新建了ajaxenable网站,配置好了数据源,在页面中加了scriptmanager控件,updatepanel控件.将gridview放入了updatepanel中,可是还不起作用,请高手帮忙呀,急急急!!
页面代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>无标题页</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  <asp:ScriptManager ID="ScriptManager1" runat="server">
  <Scripts>
  <asp:ScriptReference Path="Default2.aspx" />
  </Scripts>
  </asp:ScriptManager>
    
  </div>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <ContentTemplate>
  <asp:GridView ID="GridView1" runat="server" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging">
  </asp:GridView>
  &nbsp;&nbsp;
  <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged">
  <asp:ListItem>请选择</asp:ListItem>
  <asp:ListItem>投诉管理</asp:ListItem>
  <asp:ListItem>业务支撑</asp:ListItem>
  <asp:ListItem>营业厅服务</asp:ListItem>
  </asp:DropDownList>
  </ContentTemplate>
  <Triggers>
  <asp:AsyncPostBackTrigger ControlID="GridView1" EventName="PageIndexChanging" />
  </Triggers>
  </asp:UpdatePanel>
  <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
  <asp:ListItem>请选择</asp:ListItem>
  <asp:ListItem>业务支撑</asp:ListItem>
  <asp:ListItem>投诉管理</asp:ListItem>
  <asp:ListItem>营业厅服务</asp:ListItem>
  </asp:DropDownList>
  </form>
</body>
</html>C#代码using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;public partial class kf_admin_Default2 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
  if (!IsPostBack)
  {
  ClassDataSet ds = new ClassDataSet();
  string sql = "select * from view_web_comm_kf_jy_last order by m_id desc";
  ds.DataBind(sql, "oweb", GridView1);
  }
    
  }
  protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
  {
  GridView1.PageIndex = e.NewPageIndex;
  GridView1.DataBind();
  }
  protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
  {
  ClassDataSet ds = new ClassDataSet();
  string sql = "select * from view_web_comm_kf_jy_last where jy_lb='" + DropDownList1.SelectedItem.Text.ToString() + "'";
  ds.DataBind(sql, "oweb", GridView1);
  }
  protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
  {
  ClassDataSet ds = new ClassDataSet();
  string sql = "select * from view_web_comm_kf_jy_last where jy_lb='" + DropDownList2.SelectedItem.Text.ToString() + "'";
  ds.DataBind(sql, "oweb", GridView1);
  }
}

解决方案 »

  1.   


     protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
      GridView1.PageIndex = e.NewPageIndex;
      GridView1.DataSource=???? //????
      GridView1.DataBind();
      }
      

  2.   

    把那个ScriptManager 
    UpdatePanel 
    去掉在写上事件 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
      GridView1.PageIndex = e.NewPageIndex;
      GridView1.DataSource=数据源;
      GridView1.DataBind();
      }
    就可以了
      

  3.   

     <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
    这个最好不要加,有个时候加上这个还会报错误,我之前就遇到过这样的问题
      

  4.   

    GridView1.DataSource=???? //????
    谁能提供点代码呀
      

  5.   

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
      GridView1.PageIndex = e.NewPageIndex;
    //重新绑定gv,最好把下面代码写成方法。
      ClassDataSet ds = new ClassDataSet();
      string sql = "select * from view_web_comm_kf_jy_last order by m_id desc";
      ds.DataBind(sql, "oweb", GridView1);  }