2015-05-12 123 views
0

我在更新面板中使用列表視圖。當我嘗試從數據表刪除它的刪除記錄,但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> 

我的服務器端代碼波紋管:

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(); 
       } 
     } 
} 

我怎麼能刷新我的列表視圖中刪除一條記錄後?提前致謝。

+0

請你添加頁面(的UpdatePanel和ListView)的多個標記? – demonplus

+1

**後市來看:(!Page.IsPostBack)**請確保您已設置** **的IsPostBack檢查頁面加載 –

+0

保護無效的Page_Load(對象發件人,EventArgs的){ 如果 { VoucherInventoryListView(); } } – Liton

回答

0

我已經用我的內部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(); 
       } 
    } 
0

這裏的東西在邏輯上似乎不正確。

你是否總是刪除ListView的最後一項?您比較項目的指標與實際的最後一個項目的兩行被刪除:

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

一切似乎很好,那你有沒有試過刪除列表視圖中的最後一個項目,看看它是否刷新?

相關問題