我创建了一个可视化Web部件并在Grid中加载列表。现在,当用户A登录时,它必须仅显示由用户A创建的项目。用户B必须仅显示属于USER b的项目。这是我写的代码。它显示所有项目而不管登录用户。任何人都可以帮助我
public void Displaylistdata()
{
// System.Diagnostics.Debugger.Break();
DataTable dt = new DataTable();
var oSPWeb = SPContext.Current.Web;
SPList oSpList = oSPWeb.Lists["Participation at a Glance"];
string strCreatedby = SPContext.Current.Web.Author.Name;
SPQuery oQuery = new SPQuery();
oQuery.Query = "<Query><Where><Eq><FieldRef Name='Author' /><Value Type='User'>" + strCreatedby + "</Value></Eq></Where></Query>";
SPListItemCollection collListItems = oSpList.GetItems(oQuery);
DataTable dts = collListItems.GetDataTable();
if (dts != null)
{
Gridview1.GridLines = GridLines.None;
Gridview1.DataSource = dts;
Gridview1.DataBind();
Controls.Add(Gridview1);
}
else`enter code here`
{
lbl_noact.Visible = true;
lbl_noact.Text = "We apologize there are no times currently available.";
}
}
答案 0 :(得分:0)
您好我通过更改我的Camel查询修复如下。以前数据类型是USER,但是当我改为字符串时,它就像一个魅力: - )
DataTable dt = new DataTable();
var oSPWeb = SPContext.Current.Web;
SPList oSpList = oSPWeb.Lists["Participation at a Glance"];
string strCreatedby = SPContext.Current.Web.CurrentUser.Name;
SPQuery oQuery = new SPQuery();
oQuery.Query = @"<Where><Eq><FieldRef Name='Author' /><Value Type='String'>" + strCreatedby + "</Value></Eq></Where>";
SPListItemCollection collListItems = oSpList.GetItems(oQuery);