C# EntityDataSource筛选
这有点痛苦,我觉得这应该很容易 我有一个EntityDataSource:C# EntityDataSource筛选,c#,asp.net,telerik-grid,entitydatasource,C#,Asp.net,Telerik Grid,Entitydatasource,这有点痛苦,我觉得这应该很容易 我有一个EntityDataSource: <asp:EntityDataSource ID="TaskDataSource" runat="server" ConnectionString="name=ScheduleEntities" DefaultContainerName="ScheduleEntities" EnableFlattening="False" EntitySetName="TaskItems" EnableInsert="True"
<asp:EntityDataSource ID="TaskDataSource" runat="server" ConnectionString="name=ScheduleEntities" DefaultContainerName="ScheduleEntities" EnableFlattening="False" EntitySetName="TaskItems" EnableInsert="True" EnableUpdate="True" OrderBy="it.Duration" Where="it.deleted = False">
我不能让它只显示未删除的结果。OrderBy工作正常,一切正常……我只是无法将其过滤。您需要在EntityDataSource中将AutoGenerateWhereClause属性设置为true
<asp:EntityDataSource ID="TaskDataSource" runat="server" ConnectionString="name=ScheduleEntities" DefaultContainerName="ScheduleEntities" EnableFlattening="False" EntitySetName="TaskItems" EnableInsert="True" EnableUpdate="True" OrderBy="it.Duration" Where="it.deleted = False" AutoGenerateWhereClause="true">
我通过在UI中创建一个带有过滤器的linqDataSource并采用过滤器格式来实现它,下面是代码:
<asp:EntityDataSource ID="TaskDataSource" runat="server" ConnectionString="name=ScheduleEntities" DefaultContainerName="ScheduleEntities" EnableFlattening="False" EntitySetName="TaskItems" EnableInsert="True" EnableUpdate="True" OrderBy="" Where="deleted == @deleted">
<WhereParameters>
<asp:Parameter DefaultValue="False" Name="deleted" Type="Boolean" />
</WhereParameters>
</asp:EntityDataSource>
这是逐字记录吗?it.deleted可能需要是it.DeletedVerbatim。数据库中的列已被删除,我已尝试了这两种方法。将False更改为False,然后查看结果。没有骰子,这也不起作用,使用deleted或delete,您可以根据需要对实体数据源的QueryCreated事件进行筛选
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
var editItem = e.Item as GridEditFormItem;
if (e.Item is GridDataItem && !e.Item.IsInEditMode)
{
GridDataItem item = (GridDataItem)e.Item;
bool success,deleted;
bool.TryParse(item["deleted"].Text, out success);
if (success)
{
deleted = bool.Parse(item["deleted"].Text);
if (deleted)
{
item.Display = false;
}
}
}
}