2016-02-29 43 views
0

我在我的asp.net页面中有一个ListView表。对每一行都有删除按钮。点击按钮时,相应的项目将被删除。在ListView中的项目被删除后刷新DataPager

我已经完成了所有这些。也可以在删除项目后刷新数据。

这里是我的代码:

ASPX

<asp:ListView ID="CategoriesList" runat="server" ItemPlaceholderID="PlaceHolder1" OnPagePropertiesChanging="OnPagePropertiesChanging"> 
    <LayoutTemplate> 
    <table> 
     <tr><th>Header</th></tr> 
     <asp:PlaceHolder runat="server" ID="PlaceHolder1"></asp:PlaceHolder> 
    </table> 
    <asp:DataPager ID="DataPager" runat="server" PagedControlID="CategoriesList" PageSize="3" QueryStringField="page"> 
     <Fields> 
     //fields goes here 
     </Fields> 
    </asp:DataPager> 
    </LayoutTemplate> 
    <ItemTemplate> 
    <tr><td> //item goes here </td></tr> 
    </ItemTemplate> 
</asp:ListView> 

C#

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     BindListView(); 
    } 
} 
private void BindListView() 
{ 
    // SQL connection string, command, etc to get the data from database 
    DataTable DTable = new DataTable(); 
    SDAdapter.Fill(DTable); 
    CategoriesList.DataSource = DTable; 
    CategoriesList.DataBind(); 
} 

protected void OnPagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e) 
{ 
    (CategoriesList.FindControl("DataPager") as DataPager).SetPageProperties(e.StartRowIndex, e.MaximumRows, false); 
    BindListView(); 
} 

删除项目后,该数据被再次调用BindListView();更新。它完美的作品。

我的问题是当最后一页只存在一个项目并且它被删除时,DataPager不会转到上一页。相反,它保持在没有数据的同一页面中,甚至没有表格。

如何刷新DataPager并在当前页面的最后一项被删除后转到上一页?

+0

最简单的解决方法是将召回BindListView()方法,删除 –

+0

后,请仔细阅读问题_“删除项目后,该数据是通过调用BindListView()更新;再次” _。它更新数据。但是当最后一个项目被删除时,将显示一个没有数据的空白页面。 – Munawir

+0

如果您检测到表(DTable)为空,您可以重定向吗? –

回答

0
use this after your page load event 

protected void Page_LoadComplete(object sender, EventArgs e) 
{ 
    // BindListView(); 
} 

这将工作

+1

请详细说明。 – theMayer

+0

这不起作用。请您详细解释一下。 – Munawir

0

尝试处理已删除的事件和数据源被删除的事件中绑定。

<asp:ListView ID="lv1" runat="server" OnItemDeleted="lv1_ItemDeleted"></asp:ListView> 


protected void lv1_ItemDeleted(object sender, ListViewDeletedEventArgs e) 
    { 
     BindListView(); 
    } 
+0

这不起作用。请您详细解释一下。 – Munawir

+0

您是否尝试过调试和检查,如果delete_event方法是在删除叫什么? –

相关问题