Problema de chamada de pessoas com vista
eu tenho um asp.net página web com a GridView
<asp:GridView ID="grid_view" runat="server" AllowPaging="True"
AutoGenerateColumns="False" BackColor="White" BorderColor="#999999"
BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black"
GridLines="Vertical">
<FooterStyle BackColor="#CCCCCC" />
<Columns>
<asp:BoundField DataField="adc" HeaderText="Posa No." />
<asp:BoundField DataField="cde" HeaderText="Unit" />
<asp:BoundField DataField="efg" HeaderText="User" />
<asp:BoundField DataField="hj" HeaderText="Posa Date" />
</Columns>
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#CCCCCC" />
</asp:GridView>
e o meu código atrás é
protected void Page_Load(object sender, EventArgs e)
{
con = new SqlConnection(ConfigurationManager.AppSettings["Connection"]);
gridfil();
}
public void gridfil()
{
con.Open();
cmd = new SqlCommand("select a,b,c from xyz where approved='sss'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
grid_view.DataSource = ds;
grid_view.DataBind();
//rd.Close();
da.Dispose();
cmd.Dispose();
con.Close();
}
protected void grid_view_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
grid_view.PageIndex = e.NewPageIndex;
gridfil();
}
o meu problema é que a vista da grelha foi diplada, mas a indexação da página não funcionou... Alguém tem alguma sugestão?
0
Author: Quintin Robinson, 2011-07-23
1 answers
Coloque o código de carga da sua página em !IsPostBack()
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
con = new SqlConnection(ConfigurationManager.AppSettings["Connection"]);
gridfil();
}
}
Motivo: Sempre que você clicar no Número da Página e deseja exibir outra página, a Página será postback e o seu page load event
acionado antes de grid_view_PageIndexChanging
e vai religar o gridview e seu evento será perdido e não irá lançar o evento PageIndexChanging.
Em segundo lugar, mude isto e veja os comentários
protected void grid_view_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gridfil(); // First bind the gridview
grid_view.PageIndex = e.NewPageIndex; // then change the page Index
}
0
Author: Muhammad Akhtar, 2011-07-23 05:29:40