我正在使用 Entity Framework 开发 ASP Web 表单项目。我有两个实体(用户和角色),我想实现以下行为: gridView 必须显示一个用户的角色。 到目前为止我所做的是显示所有角色。
<dx:ASPxGridView ID="grid" runat="server" Width="100%" AutoGenerateColumns="False" ClientInstanceName="grid"
KeyFieldName="Id" OnDataBinding="grid_DataBinding" DataSourceID="RoleDataSource" EnableTheming="True" Theme="BlackGlass">
<ClientSideEvents RowDblClick="function(s, e) {
s.StartEditRow(e.visibleIndex);}" />
<Columns>
<dx:GridViewDataTextColumn Caption="ID" FieldName="Id" VisibleIndex="0">
<EditFormSettings Visible="false"/>
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Role Name" FieldName="name" VisibleIndex="1" >
</dx:GridViewDataTextColumn>
</Columns>
<SettingsBehavior AllowFocusedRow="true" AllowSelectByRowClick="True" AllowSelectSingleRowOnly="True" ConfirmDelete="True" />
<SettingsEditing Mode="PopupEditForm"/>
<SettingsText CommandUpdate="Ajouter/Modifier" PopupEditFormCaption="Ajouter/Modifier" />
<SettingsPopup>
<EditForm AllowResize="True" HorizontalAlign="Center" />
</SettingsPopup>
</dx:ASPxGridView>
<asp:EntityDataSource ID="RoleDataSource" runat="server" ConnectionString="name=AccountModelContainer"
DefaultContainerName="AccountModelContainer" EntitySetName="RoleSet" EnableDelete="True" EnableInsert="True" EnableUpdate="True">
</asp:EntityDataSource>
感谢您的帮助。
最佳答案
您应该使用the Where
property您的 EntityDataSource 的。
您可以将这样的属性添加到 EntityDataSource 声明中:
Where="name = @name"
(或者您可能会过滤“ID”,以适合您的应用程序为准)
然后添加WhereParameters
EntityDataSource 内的标记部分:
<WhereParameters>
<asp:ControlParameter ControlID="userNameTB" DbType="String"
DefaultValue="testUser" Name="name" PropertyName="Text" />
</WhereParameters>
请注意,此示例假设您有一个名为“userNameTB”的文本框,其中包含您要过滤的用户名。但是,您可以使用 the <asp:Parameter>
controls 中的任何一个:
- 控制参数
- 表单参数
- session 参数
- 路由参数
- Cookie参数
- 查询字符串参数
- 配置文件参数
所以你的最终代码看起来像这样:
<asp:EntityDataSource ID="RoleDataSource" runat="server" ConnectionString=""
name=AccountModelContainer" DefaultContainerName="AccountModelContainer"
EntitySetName="RoleSet" EnableDelete="True" EnableInsert="True"
EnableUpdate="True" Where="name = @name">
<WhereParameters>
<asp:ControlParameter ControlID="userNameTB" DbType="String"
DefaultValue="testUser" Name="name" PropertyName="Text" />
</WhereParameters>
关于c# - DevExpress gridView 数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21406604/