我在SharePoint 2010中有一个列表,其中包含一些列。所有类型都是默认类型。所以我有
"单行文本"
"多行文本"
"日期和时间"
"选择"
"数字"
"货币"
"个人或团体"
我的目标是有一个自定义功能区选项卡或组,我可以在其中执行此列表上的一些操作。作为起点,我在VisualStudio解决方案中创建了一个Empty元素,并将我的按钮放在Elements.xml中。到目前为止,这是有效的。我还想出了如何对按下的按钮进行回发反应。此回发引用了一个JavaScript文件。
在执行某些操作之前,我首先尝试读取给定的内容,并使用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));
如何从列出的列类型中获取内容?我记得我能够阅读单个文本行和选项,但其余的都崩溃了。所以我想我必须以任何方式转换它。但是怎么做呢?IntelliSense帮不了什么忙。
子问题:如果你能告诉我如何将PostBack返回到一个可以使用客户端对象模型的.cs文件,我会跳过使用EcmaScript。我发现了一些东西,但不起作用/不明白。
是的,我以为这会很容易,但事实并非如此。至少因为我只知道一点C#,没有EcmaScript。
谢谢。
好的,我从用户Vardhaman Deshpande那里得到了一个解决方案Sharepoint.Stackeoverlow.com。这是有效的。
以下是如何获得每种类型字段的值:
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/
更新:以下代码正在运行并经过测试。
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!');
}