我遇到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中使用Selection事件
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中实现分页(当然是关系表)?
答案 0 :(得分:2)
如果从linqdatasource中删除select语句,则不会再出现该错误。然后你可以使用更新,删除和插入。哦,你还必须在数据源中启用删除插入和更新。
以下是一个例子:
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="Custom.Data.DataAccessDataContext"
TableName="CustomerSegmentMappings"
EnableDelete="True"
EnableInsert="True"
EnableUpdate="True">
</asp:LinqDataSource>