2009-08-20 62 views
2

我使用C#.NET自定義編輯/刪除按鈕的GridView

我想添加自定義編輯/刪除按鈕,我GridView1(一個編輯/刪除每行按鍵)。

但是我想的按鈕訪問另一個視圖(EditView中/ deleteView相同的形式內),而不是編輯「內聯」等

編輯按鈕似乎是工作的罰款。下面是我如何創建它手動:

Right clicked on GridView1 
Clicked on ‘Add New Column’ 
Field Type: ButtonField 
Header Text: Edit 
Button Type: Button 
Command Name: Edit 
Text: Edit 

在爲GridView1「事件」部分(位於屬性),我雙擊在RowEditing,這就創造了一個事件我可以在代碼中訪問後面。

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     // Access _viewAdd 

     _multiView1.ActiveViewIndex = 1; 
    }  

刪除按鈕應該訪問deleteView(確認頁),而不僅僅是自動刪除一行。我想創建一個自定義的方法,當用戶選擇刪除按鈕時觸發。

回答

1

我結束了使用中繼器和修改編輯/刪除按鈕到每行的末尾。這些按鈕不僅保存了OnClick_Event信息,還保存了與該行關聯的ID。

 <asp:Repeater ID="Repeater" runat="server" DataSourceID="*****"> 
     <HeaderTemplate>   
      <table cellpadding="3" cellspacing="3"> 
      <tr> 
       <th style="text-align:left">Name</th> 
       <th>&nbsp;</th> 
       <th>&nbsp;</th> 
      </tr>    
     </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td style="text-align:left"><%#Eval("forename")%>&nbsp;<%#Eval("surname")%></td> 
       <td style="text-align:left"><asp:Button ID="edit" OnCommand="edit_Click" CommandArgument='<%#Eval("id")%>' runat="server" Text="Edit" CssClass="standardButton" /></td> 
       <td style="text-align:left"><asp:Button ID="delete" OnCommand="delete_Click" CommandArgument='<%#Eval("id")%>' runat="server" Text="Delete" CssClass="standardButton" /></td> 
      </tr> 
     </ItemTemplate> 
     <FooterTemplate> 
      </table> 
     </FooterTemplate> 
     </asp:Repeater> 

我希望幫助其他人。

0

您還可以處理RowDeleting事件。兩個事件參數都有一個Cancel屬性,您可以將其設置爲true以防止數據被修改。

+0

我已添加一個新的「刪除」按鈕。 而在後面的代碼中添加了e.Canel屬性,但它似乎沒有工作,它需要轉到另一個視圖,但看起來它只是刷新第一個視圖。 保護無效GridView1_RowDeleting(對象發件人,GridViewDeleteEventArgs E) {// 確保犯規GridView的 e.Cancel內刪除任何= TRUE; // Access _viewAdd _multiView1.ActiveViewIndex = 0; } – ClareBear 2009-08-21 07:25:03

+0

您的RowDeleting處理程序是否註冊了該事件?處理程序中的斷點是否受到影響?如果是這樣,如果你繼續走下去會發生什麼? – dahlbyk 2009-08-21 12:43:23