0

背景には、xmldatasource にリンクされた asp:Menu であるカスタム コントロールがあります。xmldatasource は、ユーザーの権限に応じて動的に作成されます。カスタム コントロールのロード イベントは次のとおりです。

  protected void Page_Load(object sender, EventArgs e)
    {
        string userId = (string)Session["userId"];

        if (userId != null)
        {
            DataSet ds = dal.RetrieveApplications(userId);
            ds.DataSetName = "Menus";
            ds.Tables[0].TableName = "Menu";
            DataRelation relation = new DataRelation
            ("ParentChild",
                ds.Tables["Menu"].Columns["Folder_Id"],
            ds.Tables["Menu"].Columns["Parent_Folder_ID"], true);

            relation.Nested = true;
            ds.Relations.Add(relation);


            xmlDataSource1.Data = ds.GetXml();

        }
}

これは、それを使用する最初のユーザーにとって完全に機能します。しかし、実際には後続のすべてのユーザーが最初のユーザーのメニューを取得しているようです。私はそれを一通り見て、データセットが正常に作成されていることを確認しました。ロードの最後に XMLDatasource.data を調べると、xml は正しいです。

私は本当に立ち往生しています。

4

1 に答える 1

0

私は答えを見つけましたが、これを検索する可能性のある他の人のためにここでは省略します:

しかし、xmldatasource で "ENABLECACHING" を false に設定する必要がありました。

于 2009-01-14T20:39:17.773 に答える