2009-07-12 75 views
0

我有一個linqdatasource的問題。我的GridView在我的網頁,我把它的數據源來使用LinqDataSource,也是我設置AllowPaging =「真」,AllowSorting =「真」。Linqdatasource和關係數據問題

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

現在在linqdatasource我想從兩個表(與FK的關係表)檢索數據,這一步沒有問題。 我可以使用這樣的LinqDataSource的屬性選擇從其他表中選擇

<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' does not support the Select property when the Delete, Insert or Update operations are enabled

這裏是我的問題:我如何在GridView中實現分頁(當然對於關係表)使用linqdatasource(linqdatasource與啓用刪除或更新)?

回答

2

如果您從linqdatasource中刪除select語句,您將不會再遇到該錯誤。然後你可以使用更新,刪除和插入。哦,你還必須在數據源中啓用刪除插入和更新。

下面是一個例子:

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

    TableName="CustomerSegmentMappings" 
    EnableDelete="True" 
    EnableInsert="True" 
    EnableUpdate="True"> 
</asp:LinqDataSource>