0

我对 linqdatasource 有疑问。我的页面中有gridview,我将它的数据源设置为linqdatasource,我还设置了AllowPaging="True",AllowSorting="True"。

<asp:GridView ID="cityGrid" runat="server" AutoGenerateColumns="False" 
DataKeyNames="CityId" AllowPaging="True" 
AllowSorting="True" DataSourceID="LinqCityData">

现在在linqdatasource中我想从两个表(带FK的关系表)中检索数据,这一步没有问题。我可以像这样使用 linqdatasource 的 Select 属性从其他表中进行选择

<asp:LinqDataSource ID="LinqCityData" runat="server" 
ContextTypeName="ContactSysDataContext" 
TableName="Office_ContactSys_Cities" 
Select="new (CityId, CityName , Office_ContactSys_Province.ProvinceName)">
</asp:LinqDataSource>

或者我在 linqdatasource 中使用选择事件

protected void LinqCityData_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        ContactSysDataContext db = new ContactSysDataContext();
        var CityResult= from p in db.Office_ContactSys_Cities join o in db.Office_ContactSys_Provinces on p.ProvinceId equals o.ProvinceId select new { o.ProvinceName, p.CityId, p.CityName };
        e.Result = CityResult;
    }

但是在这一步之后我不能在 linqdatasource 中使用自动删除,而是收到这个错误:

当启用删除、插入或更新操作时,LinqDataSource 'LinqCityData' 不支持 Select 属性

这是我的问题:如何使用 linqdatasource(启用删除或更新的 linqdatasource)在 gridview(当然对于关系表)中实现分页?

4

1 回答 1

2

如果您从 linqdatasource 中删除 select 语句,您将不会再收到该错误。然后你可以使用更新、删除和插入。哦,您还必须在数据源中启用删除插入和更新。

这是一个例子:

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="Custom.Data.DataAccessDataContext"

    TableName="CustomerSegmentMappings" 
    EnableDelete="True"
    EnableInsert="True"
    EnableUpdate="True">
</asp:LinqDataSource>
于 2009-08-05T09:26:01.957 回答