2013-08-14 2 views
3

삭제 열을 내 gridview에 추가하려고하지만 행의 삭제 단추를 누르면 onRowDeleting에 할당 된 함수가 무한대로 호출되므로 생각됩니다. 그 메소드를 호출하는 것도 다시 RowDeletedRowDeleting 이벤트를 제기하기 때문으로, 이벤트 루프를 일으키는그리드 삭제 이벤트로 인해 무한 루프가 발생합니까?

protected void dismissClick(object sender, GridViewDeleteEventArgs e) 
    { 
     int index = Convert.ToInt32(e.RowIndex); 
     GridView1.DeleteRow(index); 
    } 

답변

1

GridView1.DeleteRow(index) 호출 :

<asp:GridView ID="GridView1" runat="server" CssClass="yep" AutoGenerateColumns="False" OnRowDeleting="dismissClick"> 
<Columns> 
    <asp:TemplateField HeaderText="Create Incident"> 
     <ItemTemplate> 
      <asp:CheckBox ID="Selections" runat="server" ViewStateMode = "Enabled" OnCheckedChanged="CheckBox1_CheckedChanged" /> 
     </ItemTemplate> 
    </asp:TemplateField> 
    <asp:BoundField DataField="case#" HeaderText="Case #" SortExpression="case#" /> 
    <asp:BoundField DataField="Unit #" HeaderText="Unit #" SortExpression="Unit #" /> 
    <asp:BoundField DataField="date" HeaderText="date" SortExpression="date" /> 
    <asp:BoundField DataField="typeOfCall" HeaderText="typeOfCall" SortExpression="typeOfCall" /> 
    <asp:BoundField DataField="Primary Impression" HeaderText="Primary Impression" SortExpression="Primary Impression" /> 
    <asp:TemplateField HeaderText="View PCR"> 
     <ItemTemplate> 
      <asp:Button ID="ViewPCR" Text="View PCR" runat="server" OnClick="viewPCRClick" CssClass="btn em" /> 
     </ItemTemplate> 
    </asp:TemplateField> 
     <asp:TemplateField HeaderText="Dismiss"> 
     <ItemTemplate> 
      <asp:Button ID="dismiss" Text="Dismiss" runat="server" CommandName="Delete" CssClass="btn em" /> 
     </ItemTemplate> 
    </asp:TemplateField> 

</Columns> 
    </asp:GridView> 

내 간단한 삭제 기능 : 여기

내 코드입니다 GridView.DeleteRow Method에 대한 MSDN 설명서에 설명되어 있습니다.

Calling this method also raises the RowDeleted and RowDeleting events. 

대신 바인딩 소스에서 바인딩을 제거하고 싶습니다. DataSet, DataTable, List<T> 또는 바인딩에 관계없이) 데이터베이스에 또는 데이터를 보유하고있는 모든 항목을 유지 한 다음 그리드를 다시 바인드하십시오.

+0

아, 그리드 뷰는 회사 서버의 데이터베이스 테이블에 바인드됩니다. 그래서 그것을 쿼리 데이터 소스 양식을 삭제 코딩 할 필요 한가? 그게 어떻게 생겼어? –

+0

@WillTuttle - 그리드를 인라인 SQL (즉, "SELECT * FROM xyz ..."또는 저장 프로 시저)과 바인딩하는 방법은 무엇입니까? –

+0

webservice 프로젝트에 작성된 함수를 사용하여 게시합니다. –

관련 문제