简体   繁体   English

删除项目后,列表视图不更新/刷新

[英]After deleting item List View not updating/refreshing

I am using listview in Update panel. 我在“更新”面板中使用列表视图。 When i try to delete its deleting record from datatable but listview not updating. 当我尝试从数据表中删除其删除记录但listview不更新时。 Bellow my button code inside in listview: 在下面的列表视图中显示我的按钮代码:

    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
<asp:ListView ID="lvSelectedVoucher" OnItemCommand="lvSelectedVoucher_OnItemCommand" OnLayoutCreated="lvSelectedVoucher_LayoutCreated" runat="server">
            <LayoutTemplate>
<ItemTemplate>
                <tr class="odd">
                    <td class="text-left" colspan="2">
                    <div id="mvRemoveSelectedId1" class="mv-action" title="Remove item" onclick="removeVoucher">                            
                            <asp:ImageButton class="ui-icon ui-icon-close" ID="imgDelete" OnClientClick="return confirm('Are you sure you want to delete this Voucher?')"
                                    runat="server" CommandArgument='<%# Container.DataItemIndex +1%>'  CommandName="Delete" />
                        </div>
                        <asp:Literal ID="ltlMerchant"  Text='<%# Eval("MerchantName") %>' runat="server" ></asp:Literal>                        
                    </td>

My server side code bellow: 我的服务器端代码如下:

 protected void lvSelectedVoucher_OnItemCommand(object sender, ListViewCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                int index = Convert.ToInt32(e.CommandArgument);

                int listcount = lvSelectedVoucher.Items.Count;

                if (listcount - 1 == index)
                {
                    DataTable curTable = (DataTable)ViewState["SelectedVoucher"];
                    curTable.Rows[index].Delete();
                    ViewState.Add("SelectedVoucher", curTable);
                    lvSelectedVoucher.DataSource = null;
                    lvSelectedVoucher.DataSource = curTable;
                    lvSelectedVoucher.DataBind();
                    UpdatePanel1.Update();
                }
       }
 }

How can I refresh my listview after delete one record ? 删除一条记录后如何刷新列表视图? Thanks in advance. 提前致谢。

Something seems logically incorrect here. 在逻辑上似乎有些不正确。

Are you always deleting the last Item of ListView ? 您是否总是删除ListView的最后一个项目? you are comparing the Index of item to be deleted with the last item actually in the two lines : 您正在将要删除的项目的索引与实际在两行中的最后一个项目进行比较:

int listcount = lvSelectedVoucher.Items.Count;
if (listcount - 1 == index)

Everything else seems fine, So, did you tried deleting the Last Item of List view and see if it refreshes ? 其他一切似乎都很好,所以,您是否尝试删除“列表的最后一项”视图并查看是否刷新了?

I have using my inside ItemDeleting event & ListView refreshing properly 我已经使用我的内部ItemDeleting事件和ListView正确刷新

     protected void lvSelectedVoucher_ItemDeleting(object sender, ListViewDeleteEventArgs e)
        {
 if (e.CommandName == "Delete")
            {
                int index = Convert.ToInt32(e.CommandArgument);

                int listcount = lvSelectedVoucher.Items.Count;

                if (listcount  == index+1)
                {
                    DataTable curTable = (DataTable)ViewState["SelectedVoucher"];
                    curTable.Rows[index].Delete();
                    ViewState.Add("SelectedVoucher", curTable);
                    lvSelectedVoucher.DataSource = null;
                    lvSelectedVoucher.DataSource = curTable;
                    lvSelectedVoucher.DataBind();
                    UpdatePanel1.Update();
                }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM