【问题标题】:Delete record via RIA Services in Silverlight在 Silverlight 中通过 RIA 服务删除记录
【发布时间】:2011-03-04 13:46:24
【问题描述】:

我在 Silverlight 应用程序中有一个 DataGrid。此应用程序正在使用 RIA 数据服务。我的代码如下所示:

<riaControls:DomainDataSource AutoLoad="True" 
  d:DesignData="{d:DesignInstance my1:Order, CreateList=true}" Height="0" 
  LoadedData="orderDomainDataSource_LoadedData" Name="orderDomainDataSource" 
  QueryName="GetOrdersQuery" Width="0">
  <riaControls:DomainDataSource.DomainContext>
     <my:OrderDomainContext />
  </riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
<sdk:DataGrid AutoGenerateColumns="True" Height="202" Name="ordersDataGrid" 
  HorizontalAlignment="Left" 
  ItemsSource="{Binding ElementName=orderDomainDataSource, Path=Data}">
</sdk:DataGrid>
<Button Content="Delete Order" Height="23" Name="deleteButton" 
  Width="90" Grid.Row="1" HorizontalAlignment="Left" Margin="102,8,12,0" 
  Click="deleteButton_Click" />

在我的代码隐藏中,我有

private void deleteButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
  if (HtmlPage.Window.Confirm("Are you sure you want to delete this order?") == true)
  {
  }
}

我的问题是,我不知道如何从我的数据源中删除记录。如何删除当前在我的 DataGrid 中选择的记录?

谢谢

【问题讨论】:

    标签: silverlight ria


    【解决方案1】:
    if (HtmlPage.Window.Confirm("Are you sure you want to delete this order?") == true)
    
    {
    DomainDataSource.DataView.Remove(DataGrid.SelectedItem);
    DomainDataSource.SubmitChanges();
    }
    

    【讨论】:

      【解决方案2】:

      首先,您不能定义自己的插入/更新/删除方法 - 即使遵守命名约定 - 因为编译器会生成一个错误列表,说明这是一个已经存在的冗余操作 其次,在客户端,如果你写: DomainDataSource.DataView.Remove(DataGrid.SelectedItem); DomainDataSource.SubmitChanges() 通过说此实体 (DataGrid.SelectedItem) 不包含在 entitySet 中,您会在执行时间中遇到另一个错误 然后怎么办? 为什么生成的CRUD方法不能直接调用?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多