2013-09-13 3 views
3

Я действительно новичок в ASP C#, и я хочу, чтобы выяснить, как управлять GridView подкачки в AsyncPostBackTrigger .. вот мой код:AsyncPostBackTrigger Gridview пейджинг

<div id="grid_layer"> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server" > 
     <ContentTemplate> 
    <asp:GridView ID="GridView1" CssClass="result_grid" runat="server" CellPadding="3" ForeColor="Black" 
     GridLines="Vertical" BackColor="White" BorderColor="#999999" 
      BorderStyle="Solid" BorderWidth="1px" AllowPaging="True" PageSize="15" 
      > 
     <AlternatingRowStyle BackColor="#CCCCCC" /> 
     <FooterStyle BackColor="#CCCCCC" /> 
     <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> 
     <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> 
     <SortedAscendingCellStyle BackColor="#F1F1F1" /> 
     <SortedAscendingHeaderStyle BackColor="#808080" /> 
     <SortedDescendingCellStyle BackColor="#CAC9C9" /> 
     <SortedDescendingHeaderStyle BackColor="#383838" /> 
    </asp:GridView> 
    </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="btnSearch" /> 
    <asp:AsyncPostBackTrigger ControlID="GridView1" EventName="PageIndexChanged" /> 
    <asp:AsyncPostBackTrigger ControlID="Gridview1" EventName="PageIndexChanging" /> 
    </Triggers> 
    </asp:UpdatePanel> 
    <br /> 
    <br /> 

    </div> 

мой aspx.cs код:

private void BindGridviewDataWebloan() 
    { 
     string ConnectionStringB = ConfigurationManager.ConnectionStrings["conWebloan"].ConnectionString; 
     using (SqlConnection connectionB = new SqlConnection(ConnectionStringB)) 
     { 
      connectionB.Open(); 
      SqlCommand cmdWebloan = new SqlCommand("Select a.ldatetime as Date, b.action_name as Action, a.description as Description, a.username as Username from webloan.dbo.logbook a join webloan.dbo.action_def b on a.action_no=b.action_no where DATEDIFF(day,ldatetime,@date_exec) = 0", connectionB); 
      cmdWebloan.Parameters.AddWithValue("@date_exec", txtDate.Text); 

      SqlDataAdapter da = new SqlDataAdapter(cmdWebloan); 

      DataSet ds = new DataSet(); 


      da.Fill(ds); 
      GridView1.DataSource = ds;   
      GridView1.DataBind(); 
      connectionB.Close(); 
     } 

    } 

Я не использую SqlDataSource я использую набор данных ... Спасибо ..

+0

Возможно, вы имели в виду gridview не смогли изменить страницу? – User2012384

ответ

2

PageIndexChanged/PageIndexChanging события в GridView будет называться в асинхронном способе. Хотя если вы хотите, чтобы весь элемент управления UpdatePanel обновился, когда эти события подняты, вы можете добавить <asp:AsyncPostBackTrigger> для таких событий. Check MSDN.

Все, что вам нужно, это определить OnPageIndexChanging событий для вашего GridView. Установите их в разметке как:

<asp:GridView ID="GridView1" 
    OnPageIndexChanging="GridView1_PageIndexChanging" 
    OnPageIndexChanged="GridView1_PageIndexChanged" 
...> 
</asp:GridView> 

И в обработчике события OnPageIndexChanging, вам необходимо установить вручную индекс страницы, а также снова связать/заполнить данные на GridView.

protected void GridView1_PageIndexChanging(object sender,GridViewPageEventArgs e) 
    { 
     GridView1.PageIndex = e.NewPageIndex; 
     // must call your Data filling function, else gridView will be empty 
     BindGridviewDataWebloan(); 
    } 
+1

thaks искали это – Bongsky

Смежные вопросы