2014-01-23 2 views
-1

Моего кода:Как удалить выбранные строки из сетки и соответствующие данные из базы данных?

<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 и сотрудник с выбранными идентификаторами из таблицы «Сотрудник», когда кнопка нажата. Как я могу это сделать с linq на sql (с/без lambda)? Спасибо.

ответ

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()) 
     ) 
    ); 
} 
Смежные вопросы