2012-06-22 20 views
0

這裏是我的EntityDatasource:如果未設置參數,如何防止EntityDatasource查詢數據庫?

<asp:EntityDataSource ID="edsUsers" runat="server" 
ConnectionString="name=kdEntities" DefaultContainerName="kdEntities" EnableDelete="True" 
EnableFlattening="False" EnableInsert="True" EnableUpdate="True" 
EntitySetName="Users" AutoGenerateWhereClause="true"> 
<WhereParameters> 
    <asp:SessionParameter Name="UsrID" SessionField="UsrID" DefaultValue="-1" Type="Int32" /> 
</WhereParameters> 

我想我需要使用EntityDatasource的OnSelecting事件,但我還沒有想出如何檢查參數值。

我想取消查詢,如果值是-1​​,但我寧願檢查通過數據源,而不是參數使用的會話字段。

感謝 凱文

回答

1

你可能會認爲將Object類型的自定義參數的。這可以希望解決你的問題。

<WhereParameters> 
      <cmsParameter:CustomParameter Name="UsrID" /> 
</WhereParameters> 

然後你就可以添加一個新的自定義參數類像

public class CustomParameter : Parameter 
{ 
    protected override object Eval(HttpContext context, Control control) 
    { 
     MembershipUser cur_User = Membership.GetUser(); 
     return cur_User.ProviderUserKey; 
    } 
} 

這實際上被分配到「UsrID」自定義參數我們已經指定。

相關問題