2009-06-29 5 views
6

Sto tentando di creare una pagina membro per l'aggiornamento dei dettagli dell'account. Voglio compilare un modulo con i dati del membro, ma non so come impostare un filtro su EntityDataSource per limitare la query.Come compilare un FormView aggiornabile da un EntityDataSource con filtro

Quando ho creato la dichiarazione prescelta in base all'ID utente, ottengo l'errore

Select cannot be set if EnableDelete, EnableInsert, or EnableUpdate is enabled.

Credo che questo sia perché non si può aggiornare una proiezione o qualcosa, ma c'è comunque intorno a questo ?

Oppure devo eseguire una query in Page_Load e compilare il modulo da solo?

risposta

13

Non è necessario impostare la selezione, solo la clausola where.

Si potrebbe fare qualcosa di simile al seguente:

<asp:EntityDataSource ID="MyDataSource" EntitySetName="Entity1" runat="server" 
    ConnectionString="name=MyEntitiesConnString" EnableUpdate="true" 
    DefaultContainerName="MyEntities" Where="it.MemberId= @MemberId" > 
     <WhereParameters> 
      <asp:QueryStringParameter DbType="Int32" Name="memberId" QueryStringField="memberid" /> 
     </WhereParameters> 
</asp:EntityDataSource> 

Se il parametro viene passato dalla querystring. ci sono anche molti altri tipi di parametri built-int.