2011-12-09 19 views
0

私はGridViewを作成し、そのヘッダを設定している:行削除ボタンをGridView_RowDeletedイベントにどのように接続できますか?

<asp:GridView ID="ProductsGridView" 
    DataSourceID="ProductsDataSource" 
    AllowPaging="True" 
    AutoGenerateColumns="False" 
    runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" 
    AutoGenerateDeleteButton="True" 
    AutoGenerateEditButton="True" 
    OnRowCancelingEdit="GridView1_RowCancelingEdit" 
    OnRowUpdating="GridView1_RowUpdating" 
    OnRowEditing="GridView1_RowEditing" 
    OnRowDeleted="ProductsGridView_RowDeleted" 
    onselectedindexchanged="ProductsGridView_SelectedIndexChanged"> 

私はグリッド上で削除ボタンを見ることができますが、私はそのボタンをダブルクリックすると、Visual Studioがに私を取る:

protected void ProductsGridView_SelectedIndexChanged(object sender, EventArgs e) 

の代わり:

protected void ProductsGridView_RowDeleted(object sender, GridViewDeletedEventArgs e). 

このイベントは、送信側の行についての情報を持っていません。私は何が欠けていますか?

+0

私は/の代わりに、削除後に削除する前に、あなたが火にSelectedIndexChangedイベントを引き起こしている上記のあなたの例のうち、いくつかのコードを残していると思いますイベント。上記のコードは指定どおりに動作するはずです。 –

+0

これは私が理解しようとしていることです - – aralele

答えて

0

は、私は通常、次の操作を行います。あなたは、グリッド自体の値だけではなく、インライン編集を削除する懸念がある場合

<asp:GridView ID="ProductsGridView" 
    DataSourceID="ProductsDataSource" 
    AllowPaging="True" 
    AutoGenerateColumns="False" 
    runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" 
    AutoGenerateDeleteButton="True" 
    AutoGenerateEditButton="True" 
    OnRowCancelingEdit="GridView1_RowCancelingEdit" 
    OnRowUpdating="GridView1_RowUpdating" 
    OnRowEditing="GridView1_RowEditing" 
    onrowdeleting="GridView1_RowDeleting" 

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 

} 
0

は、私はむしろ、あなたに簡単な方法をお勧めします。

<asp:GridView ID="ProductsGridView" DataSourceID="ProductsDataSource" 
       AllowPaging="True" AutoGenerateColumns="False" 
       runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" 
       AutoGenerateEditButton="True" OnRowCommand="Gridview1_RowCommand"> 
    <columns> 
     <table> 
      <tr> 
      <td> col1val1 </td> 
      <td> col1val1 </td> 
      <td> col1val1 </td> 
      <td> col1val1 </td> 
      <td> col1val1 </td> 
      <td> <asp:Button Id="btnDelete" CommandName="DeleteRow" 
        CommandArgument='<%#Eval("PrimaryKeyFromTheDataSource") %>' 
       Text="Delete" Tooltip="DeleteCurrentRow" 
       onclientclick='return confirm("Are you certain to delete?");'/> 
      </td> 

      </tr> 
     </table> 
    <columns> 
</asp:Gridview>` 

のC# - 行のコマンドイベントで

int i = Convert.ToInt32(e.CommandArgument); 
if(e.commandname.equals("deleterow")) 
{ 
    DeleteItemById(i); 

} 
0
Protected void CustomersGridView_RowDeleting(Object sender, GridViewDeleteEventArgs e) 
{ 
    TableCell cell = CustomersGridView.Rows[e.RowIndex].Cells[2]; 
    if (cell.Text == "Beaver") 
    { 
     e.Cancel = true; 
     Message.Text = "You cannot delete customer Beaver."; 
    } 
    else 
    { 
     Message.Text = ""; 
    } 
} 
<asp:GridView ID="CustomersGridView" runat="server" 
    DataSourceID="CustomersSqlDataSource" 
    AutoGenerateColumns="False" 
    AutoGenerateDeleteButton="True" 
    OnRowDeleting="CustomersGridView_RowDeleting" 
    DataKeyNames="CustomerID,AddressID"> 
    <Columns> 
     <asp:BoundField DataField="FirstName" 
      HeaderText="FirstName" SortExpression="FirstName" /> 
     <asp:BoundField DataField="LastName" HeaderText="LastName" 
      SortExpression="LastName" /> 
     <asp:BoundField DataField="City" HeaderText="City" 
      SortExpression="City" /> 
     <asp:BoundField DataField="StateProvince" HeaderText="State" 
      SortExpression="StateProvince" /> 
    </Columns> 
</asp:GridView> 
+0

にお送りしていますありがとうございました、あなたがここでdpoingしているのを見ることができますが、まだ問題があります - あなたのコードでイベントを発生させることはSelectedIndexChanged で "CustomersGridView_RowDeleting "イベント。 amy ideas? – aralele

+0

void ItemsGridView_SelectedIndexChanged(オブジェクト送信者、EventArgs e) { \t GridViewRow row = ItemsGridView.SelectedRow; \t Message.Text = "あなたは「+ row.Cells [2] .Text +」を選択しました。 } –

+0

あなたはこのことで削除できます: を削除 保護ボイドlbtndelete_click(オブジェクト送信者、のEventArgs電子){ int型ID = Convert.toint32(((LinkBut​​tonコントロール)送信者).CommandArgument)の背後にあるページの 。 } –

関連する問題