2014-01-23 2 views
-1

내 코드는 다음과 같습니다gridpanel에서 선택한 행을 삭제하고 데이터베이스에서 해당 데이터를 삭제하는 방법은 무엇입니까?

<ext:GridPanel ID="GridEmployees" runat="server" Width="700" Title="Employees"> 
    <Store> 
     <ext:Store ID="StoreEmployees" runat="server"> 
      <Model> 
       <ext:Model ID="ModelEmployees" runat="server" IDProperty="ID"> 
        <Fields> 
         <ext:ModelField Name="ID" Type="Int" /> 
         <ext:ModelField Name="Name" Type="String" /> 
        </Fields> 
       </ext:Model> 
      </Model> 
     </ext:Store> 
    </Store> 
    <ColumnModel> 
     <Columns> 
      <ext:Column ID="ColumnName" Text="Name" runat="server" Flex="1" DataIndex="Name"/> 
     </Columns> 
    </ColumnModel> 
    <SelectionModel> 
     <ext:CheckboxSelectionModel runat="server" Mode="Multi" />  
    </SelectionModel> 
    </ext:GridPanel> 

내가 버튼을 클릭 할 때 '직원'테이블에서 선택된 gridpanel에서 행과, 선택된 ID를 가진 직원을 삭제합니다. 제발 어떻게 linq SQL (람다 함께/sql) 할 수 있습니까? 고맙습니다.

답변

0

그리드로이 마크 업을 추가

<TopBar> 
     <ext:Toolbar runat="server"> 
      <items> 
       <ext:Button runat="server" Handler=" 
        var idArray = new Array(); 
        var selection = #{GridEmployees}.getSelectionModel().getSelection(); 
        for(i in selection){ 
         idArray.push(selection[i].data.id); 
        } 
        App.direct.DeleteSelected(idArray);" /> 
      </items> 
     </ext:Toolbar> 
    </TopBar> 

그리고 코드 behiend에이 코드 :

dataContext ctx = new dataContext(); // your data context 

[DirectMethod] 
public void DeleteSelected(int[] idArray) 
{ 
    ctx.Employees.DeleteAllOnSubmit(
     ctx.Employees.Where(x => idArray.Contains(x.id)).ToArray() 
    ); 
    ctx.SubmitChanges(); 
} 

또는 코드 :

[DirectMethod] 
public void DeleteSelected(int[] idArray) 
{ 
    ctx.ExecuteCommand(
     string.Format(
      "DELETE FROM Employees WHERE ID IN ({0})", 
      string.Join(",", idArray.Select(x => x.ToString()).ToArray()) 
     ) 
    ); 
} 
관련 문제