我有两个工作代码要合并。到目前为止,尝试都没有成功。
第一部分是识别SharePoint中的当前用户:
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(getWebUserData, "sp.js");
var context = null;
var web = null;
var currentUser = null;
function getWebUserData() {
context = new SP.ClientContext.get_current();
web = context.get_web();
currentUser = web.get_currentUser();
currentUser.retrieve();
context.load(web);
context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod), Function.createDelegate(this, this.onFailureMethod));
}
function onSuccessMethod(sender, args) {
var userObject = web.get_currentUser();
alert('Login Name:' + userObject.get_loginName());
}
function onFailureMethod(sender, args) {
alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace());
}</script>
这是在Web部分显示列表数据的第二部分:
<script src="/sites/SiteName/SitePages/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="/sites/SiteName/SitePages/jquery.SPServices-0.7.2.min.js" type="text/javascript"></script>
<table border="1" align="center" width="90%" id="myHTMLTable">
<tbody>
<tr align="left">
<td><b>Title</b></td>
<td><b>Login</b></td>
<td><b>Price</b></td>
</tr>
</tbody>
</table>
<script type="text/javascript">
getMyListData() ;
function getMyListData() {
var method = "GetListItems";
var webURL = $().SPServices.SPGetCurrentSite() ;
var list = "Products";
var fieldsToRead = "<ViewFields>"+"<FieldRef Name='Name' />" +"</ViewFields>";
var query = "<Query><OrderBy><FieldRef Name='Title' Ascending='True' /></OrderBy></Query>";
$().SPServices
({
operation: method,
async: false,
webURL: webURL,
listName: list,
CAMLViewFields: "<ViewFields Properties='True' />",
CAMLQuery: query,
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var Title = $(this).attr("ows_Title");
var login = $(this).attr("ows_Login");
var Price = $(this).attr("ows_Price");
$("#myHTMLTable").append("<tr align='middle'>" +
"<td align='left'>"+Title+"</td>" +
"<td align='left'>"+Login+"</td>" +
"<td align='left'>"+Price+"</td>" +
"</tr>"
);
});
}
});
};
</script>
我想合并这两个部分的原因是,我列出了每个人的详细信息,包括登录。我想将视图限制为特定用户,在该用户中,只能根据javascript中的登录过滤查看他们的数据。
我知道这可以在sharepoint选项中完成,但是我在视图中只有5000个条目,由于我的组织限制,我无法增加它们
答案 0 :(得分:0)
如果“登录”是人员或组字段,并且您希望限制数据,以便当前用户只能看到他是“登录”的记录,并且您希望在Web部件中显示数据那么你实际上不需要编写任何代码。
您需要创建一个过滤器所在的视图:Login equals [Me] 然后创建一个列表视图Web部件并将其附加到该视图以显示在您的页面上。
如果任何组织禁用视图创建,我会非常惊讶,特别是如果它意味着开发人员不编写代码来实现产品提供OOTB的东西。