0

これが私の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の場合はクエリをキャンセルしたいのですが、パラメータが使用するSessionフィールドではなく、データソースをチェックしたいと思います。

ありがとうケビン

4

1 に答える 1

1

オブジェクト型のカスタム パラメータを追加することを考えるかもしれません。それはうまくいけばあなたの問題を解決することができます.

<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」カスタム パラメータに実際に割り当てられます。

于 2012-06-22T22:17:06.373 に答える