javascript 如何使用 EcmaScript 读取列类型 SPUser、DateTime、Currency?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/8892999/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to read a column type SPUser, DateTime, Currency with EcmaScript?
提问by Shegit Brahm
I have a list in SharePoint 2010 with some columns. All are default types. So I have
"Single line of text"
"Multiple line of text"
"Date and Time"
"Choice"
"Number"
"Currency"
"Person or Group"
我在 SharePoint 2010 中有一个包含一些列的列表。都是默认类型。所以我有
“单行文本”
“多行文本”
“日期和时间”
“选择”
“数字”
“货币”
“人或组”
My aim is to have a custom ribbon tab or group where I can perform some action on this list. As a starting point I created an Empty Element in my Visual Studio solution and put inside Elements.xml my buttons. This works so far. I also figured out how to do a postback to react on pressed button. This postback refers to a JavaScript file.
我的目标是拥有一个自定义功能区选项卡或组,我可以在其中对此列表执行某些操作。作为起点,我在 Visual Studio 解决方案中创建了一个空元素,并将我的按钮放在 Elements.xml 中。到目前为止,这有效。我还想出了如何进行回发以对按下的按钮做出反应。此回发指的是 JavaScript 文件。
Before performing some action I tried first to read the given contents and return them using alert('first field: ' + field1)
. In first called function I have
在执行某些操作之前,我首先尝试读取给定的内容并使用alert('first field: ' + field1)
. 在第一个调用的函数中,我有
function calledPostbackFunction(string button) {
var context = SP.ClientContext.get_current();
this.site = context.get_site();
this.web = context.get_web();
context.load(this.site);
context.load(this.web);
context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceded(button), Function.createDelegate(this, this.onQueryFailed));
How can I get the content from listed column types? I remember that I was able to read single text line and choice, but the rest crashed. So I guess I have to convert it any way. But how? IntelliSense doesn't helps a lot.
如何从列出的列类型中获取内容?我记得我能够阅读单个文本行和选项,但其余的都崩溃了。所以我想我必须以任何方式转换它。但是如何?IntelliSense 没有太大帮助。
SUBQUESTION: I would skip using EcmaScript if you can tell me how to doPostBack to a .cs file where I can use Client Object Model. I found something but didn't work/ understand.
子问题:如果您能告诉我如何执行 PostBack 到我可以使用客户端对象模型的 .cs 文件,我将跳过使用 EcmaScript。我找到了一些东西,但没有用/理解。
Yes, I though this will be easy, but it was not. At least because I only know C# a bit, no EcmaScript.
是的,我虽然这会很容易,但事实并非如此。至少因为我只知道一点 C#,没有 EcmaScript。
Thanks.
谢谢。
回答by Shegit Brahm
Okay, I got a solution Sharepoint.Stackoverflow.comfrom user Vardhaman Deshpande. This works.
好的,我从用户Vardhaman Deshpande那里得到了一个解决方案Sharepoint.Stackoverflow.com。这有效。
Here is How to get the value of each type of field:
以下是如何获取每种类型字段的值:
Title – SP.ListItem.get_item(‘Title‘);
ID – SP.ListItem.get_id();
Url -SP.ListItem.get_item(‘urlfieldname‘).get_url()
Description – SP.ListItem.get_item(‘descriptionfieldname‘).get_description();
Current Version – SP.ListItem.get_item(“_UIVersionString“);
Lookup field – SP.ListItem.get_item(‘LookupFieldName').get_lookupValue();
Choice Field – SP.ListItem.get_item(‘ChoiceFieldName‘);
Created Date – SP.ListItem.get_item(“Created“);
Modified Date – SP.ListItem.get_item(“Modified“); -> case sensitive does not work with ‘modified'
Created By – SP.ListItem.get_item(“Author“).get_lookupValue());
Modified by – SP.ListItem.get_item(“Editor“).get_lookupValue());
File – SP.ListItem.get_file();
File Versions - File.get_versions();.
Content Type – SP.ListItem.get_contentType();
Parent List – SP.ListItem.get_parentList();
来自:http: //www.learningsharepoint.com/2011/07/06/how-to-get-various-item-fields-using-client-object-model-ecmascript-sharepoint-2010/
UPDATE:The following code is working and tested.
更新:以下代码正在运行并经过测试。
var item;
function getItemById(itemId){
var clientContext = new SP.ClientContext.get_current();
var web = clientContext.get_web();
var list = web.get_lists().getByTitle('myList');
item = list.getItemById(itemId);
clientContext.load(item);
clientContext.executeQueryAsync(onSuccess, onFailure);
}
function onSuccess(){
alert(item.get_item("My User column").get_lookupValue());
}
function onFailure(){
alert('Failure!');
}