2013-03-26 76 views
0

我創建了一個可視化Web部件並在Grid中加載列表。現在當用戶A登錄時,它只需顯示由用戶A創建的項目。用戶B必須僅顯示屬於用戶b的項目。這裏是我寫的代碼。它顯示所有項目,不管登錄用戶。任何一個可以幫助我在這通過代碼創建列來​​過濾Sharepoint可視化Web部件

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

嗨我已通過更改我的駱駝查詢如下修復。以前的數據類型是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);