2014-01-12 3 views
0

안녕하세요 존경하는 이여,동적으로 생성되는 격자보기에서 행을 삭제하는 방법은 무엇입니까?

나는의 GridView에 DataTable의에서 내가 PRODUCTNAME, productprice를 결합/추가하는 시스템 및 productquantity을 주문처럼 쇼핑 카트를 생성하고있다.

나는 선택한 행을 삭제하기 위해서만 gridview에 ImageButton을 추가했습니다.

또한 동적으로 생성 된 격자보기에서 행을 삭제할 수 없다는 것도 알고 있습니다. 그래서 DataTable (전체 프로세스 동안 정적 인 행)을 삭제하고 GridView를 사용하여 Data를 다시 바인딩하는 ImageButton Click 이벤트에 코드를 배치했습니다.

"hv는 이미"BTN_ADD TO CART_Clicked "에서 gridview를 사용하여 데이터를 바인딩합니다. 의 GridView 'gvorderlist가'처리되지 않은 이벤트 RowDeleting을 발사 :

<asp:GridView ID="gvorderlist" runat="server" CellPadding="4" 
    ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="5" 
    onpageindexchanging="gvorderlist_PageIndexChanging" 
    onrowcommand="gvorderlist_RowCommand"> 
    <AlternatingRowStyle BackColor="White" /> 
    <Columns> 
     <asp:TemplateField HeaderText="Cancel Order" ShowHeader="False"> 
      <ItemTemplate> 
       <asp:ImageButton ID="ImgbtnCancelOrder" runat="server" CausesValidation="false" 
        ImageUrl="~/images/cross.PNG" OnClientClick="Javascript: return confirm('Aap Chutiye hai');" CommandName="Delete" 
        CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

나는 말한다 오류를 얻고, 여기에

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

     DataRow row = dt.Rows[index]; 
     dt.Rows.Remove(row); 
     gvorderlist.DataSource = dt; 
     gvorderlist.DataBind(); 
    } 
} 

내 코드이며, ASP 코드는 .

어떤 도움을 이해할 수있을 것이다

... 은의 GridView의 속성은 대소 문자를 구분 당신에게

+0

DataTable을 Datagridview에 바인딩하면 Datatable의 변경 사항이 DataGridview에 자동으로 반영됩니다. 버튼 클릭 이벤트에서 고유 한 열 값을 가져 와서 데이터 테이블에서 삭제합니다. –

+0

PrakashVishwakarma, 당신은 내가 "delete button click event"에서 다시 gridview를 바인딩해야한다고 제안하려고합니까? – user3160395

+0

imagebutton click 이벤트에서 행을 삭제하고자하는 행 인덱스를 검색 한 다음 위에서 언급 한 코드를 수행합니다 ... 실수가 있으면 안내해주세요 – user3160395

답변

1

이 오류는 모든 것을 설명합니다.

<asp:GridView ID="gvorderlist" runat="server" CellPadding="4" 
    ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="5" 
    onpageindexchanging="gvorderlist_PageIndexChanging" 
    onrowcommand="gvorderlist_RowCommand" OnRowDeleting="gvorderlist_RowDeleting"> 
    <AlternatingRowStyle BackColor="White" /> 
    <Columns> 
     <asp:TemplateField HeaderText="Cancel Order" ShowHeader="False"> 
      <ItemTemplate> 
       <asp:ImageButton ID="ImgbtnCancelOrder" runat="server" CausesValidation="false" 
        ImageUrl="~/images/cross.PNG" OnClientClick="Javascript: return confirm('Aap Chutiye hai');" CommandName="Delete" 
        CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

그리고 코드에서 빈 메소드를 추가 : Command Name=D 대신 삭제

protected void gvorderlist_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 
    // No need to implement code here 
} 
0

감사, 그래서 OnRowCommandonrowcommand을 변경하고 당신이 삭제 버튼을 클릭하면 발사되는지 확인합니다. 그렇지 않으면 명시 적으로 OnRowDeleting을 정의해야합니다. (또한 onpageindexingchange의 대소 문자 변경)

0

줄 당신은 마크 업 OnRowDeleting의 이벤트 방법을 todefine해야합니다. Command Name =Delete 일 때 Row_Deleting 이벤트를 검색합니다.

관련 문제