2010-12-29 5 views
3

Ich habe eine EntityDataSource und ich brauche WHERE mit einem lokalen Variablentyp festgelegt: GUID.einen Parameter Set für Where in EntityDataSource

Mein Problem ist, ich bin nicht in der Lage meine lokalen Variable Guid senden für ein EntityDataSource OPERATION WHERE.

Ich habe auch versucht, einen ControlParameter <asp:ControlParameter Name="UserId" /> zu verwenden und eine Beschriftung mit Texteigenschaft auf meinem Guid in String konvertiert. Aber funktioniert nicht.

Jede Idee, wie teh Materie

<asp:EntityDataSource ID="EntityDataSourceListAuthors" runat="server" 
     AutoGenerateWhereClause="True" 
     ConnectionString="name=CmsConnectionStringEntityDataModel" 
     DefaultContainerName="CmsConnectionStringEntityDataModel" 
     EnableFlattening="False" EntitySetName="CmsAuthors" Where="" 
     EntityTypeFilter="" Select=""> 
     <WhereParameters> 
      <asp:Parameter Name="UserId" /> 
     </WhereParameters> 
    </asp:EntityDataSource> 

Antwort

5

Lösung yo mein Problem zu lösen: Nützliche Ressourcen

  • Hinzufügen eines benutzerdefinierten Parameter vom Typ Object

:

http://www.leftslipper.com/ShowFaq.aspx?FaqId=11

http://weblogs.asp.net/scottgu/archive/2006/01/23/436276.aspx

How to programmatically set parameters for EntityDataSource and DetailsView?

http://msdn.microsoft.com/en-us/library/cc294876%28v=Expression.40%29.aspx

http://msdn.microsoft.com/en-us/library/cc295043%28v=Expression.40%29.aspx

http://weblogs.asp.net/scottgu/archive/2006/11/26/tip-trick-how-to-register-user-controls-and-custom-controls-in-web-config.aspx

Mein Code jetzt

<asp:EntityDataSource ID="EntityDataSourceListAuthors" runat="server" 
     AutoGenerateWhereClause="True" 
     ConnectionString="name=CmsConnectionStringEntityDataModel" 
     DefaultContainerName="CmsConnectionStringEntityDataModel" 
     EnableFlattening="False" EntitySetName="CmsAuthors" Where="" 
     EntityTypeFilter="" Select=""> 
     <WhereParameters> 
      <cmsParameter:CustomParameter Name="UserId" /> 
     </WhereParameters> 
    </asp:EntityDataSource> 

neue Klasse hinzugefügt:

using System; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

using System.Web.Security; 

namespace WebProject.Core.Utilities 
{ 
    public class CustomParameter : Parameter 
    { 
     protected override object Evaluate(HttpContext context, Control control) 
     { 
      MembershipUser currentUser = Membership.GetUser(); 
      return currentUser.ProviderUserKey; 
     } 
    } 
} 
Verwandte Themen