2014-01-28 120 views
2

我正在與實體框架的asp web表單項目。我有兩個實體(用戶和角色),我想實現以下行爲: gridView必須顯示一個用戶的角色。 我到目前爲止所做的是顯示所有角色。DevExpress 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> 

感謝您的幫助。

+0

你應該發佈一些代碼。 –

回答

2

您應該使用EntityDataSource的the Where property

你會像這樣添加屬性你EntityDataSource聲明:

Where="name = @name" 

(或者也許你會篩選的「ID」,爲您的應用取其作品)

,然後添加一個WhereParameters節到EntityDataSource中的標記:

<WhereParameters> 
    <asp:ControlParameter ControlID="userNameTB" DbType="String" 
     DefaultValue="testUser" Name="name" PropertyName="Text" /> 
</WhereParameters> 

請注意,此示例假定您有一個TextBox名稱「userNameTB」,它具有您要過濾的用戶名。但是,你可以使用任何的the <asp:Parameter> controls

  • ControlParameter
  • FormParameter
  • SessionParameter
  • RouteParameter
  • CookieParameter
  • QueryStringParameter
  • ProfileParameter

所以你的最終代碼看起來像這樣:

<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> 
+0

非常歡迎@Nabila!我很高興我能幫忙=) – jadarnel27