背景是我有一个自定义控件,它是一个链接到 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 是正确的。
我真的被困住了。