I have the following code in which i trying to get both the list GUID (working) and the list View GUID by the name of the view, which is not working.
function getLists() {
lists = web.get_lists();
context.load(lists, "Include(Id, Title, Hidden, ItemCount, Views)");
context.executeQueryAsync(onSuccess, onFail);
}
function onSuccess() {
var ul = $("#listsList");
var listsEnum = lists.getEnumerator();
while (listsEnum.moveNext()) {
var list = listsEnum.get_current();
if (list.get_title() == "XXXXXXXXXXXXXX") {
var title = list.get_title();
var view = list.get_views().getByTitle("Excel Export");
var elem = $("<li>" + title + " with GUID " + list.get_id().toString() + " view GUID:" + viewID + "</li>");
ul.append(elem); // append the details to a list
}
}
}
function onFail(sender, args) {
alert("Request failed: " + args.get_message());
}
I'm getting the following error in JS
Uncaught TypeError: Object [object Object] has no method 'get_view'
Appreciate any feedback.
I'm now using var view = list.get_views().getByTitle("Excel Export"); but this is bringing back [object Object]. Do i need to parse the object??
I have marked tyshock's response as the answer as it was his comment on enumerating through the list views that gave me my final solution.I also found the following code very useful in arriving at my working code - found here.
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<script type="text/ecmascript" language="ecmascript">
var viewCollection = null;
function runCode() {
var clientContext = new SP.ClientContext.get_current();
if (clientContext != undefined && clientContext != null) {
var web = clientContext.get_web();
var listCollection = web.get_lists();
var list = listCollection.getByTitle("Tasks");
this.viewCollection = list.get_views();
var viewInfo = new SP.ViewCreationInformation();
viewInfo.set_title('MyView');
this.viewCollection.add(viewInfo);
clientContext.load(this.viewCollection);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
}
function onQuerySucceeded() {
var viewInfo = 'Tasks list current views: \n\n';
var viewEnumerator = this.viewCollection.getEnumerator();
while (viewEnumerator.moveNext()) {
var view = viewEnumerator.get_current();
viewInfo += view.get_title() + '\n';
}
alert(viewInfo);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
</script>
<input id="Button1" type="button" value="Run Code" onclick="runCode()" />
</asp:Content>
S