RSS

Monthly Archives: 三月 2008

Video:使用VSeWSS创建定制SharePoint页面

最近有人向我抱怨,说他在用SharePoint Designer摆弄SharePoint页面时,被同事无情的嘲笑为非真正的Developer。为了挽救他受伤的心灵,我决定录一段用Visual Studio做SharePoint页面的video,来教会他如何在同事面前抬起头了。当然,如果确实用SharePoint Designer更方便,我还是建议他每天早一个钟头去办公室,先用SharePoint Designer弄好页面,然后在同事进到办公室之前,将用SharePoint Designer弄好的页面copy到Visual Studio中…

闲话少说。先说一下Video中的那个工具:Visual Studio Extensions for WSS 1.1

再次道歉(奇怪,我为什么要说再呢?):录屏时错误的选择了WebEx,造成录像效果不是很好,但基本不影响欣赏。同时,还得麻烦您到这里去下载WebEx播放器

 

Posted by on 2008/03/26 in 未分类

42 Comments

Tags:

如何定制列表项编辑页面

经常有人问我“如何禁止用户修改某某字段?”之类的问题。通常这一类的问题会牵涉到对列表项编辑页面的修改。

其实简单来说,如果你熟悉SharePoint开发,解决上面所说的这个问题就非常简单了。因为SPField有一个ShowInEditForm的属性,你只需要这样:

SPField titleField = item.Fields[“Title”];
titleField.ShowInEditForm = false;

但如果你不想用这样的方法,或者想了解更多对列表项编辑页面的定制,那就继续看下去。

对列表项编辑页面最常见,也最方便的定制方法,就是使用SharePoint Designer打开这个页面直接进行修改。通常,通过往这个页面上添加相应的JavaScript脚本,就可以完成我们需要的效果。
image

比如下面的这个任务列表项的编辑页面,我们希望,它能够隐藏“标题”字段,同时,自动将“截止日期”所对应的文本框中的值设置为2008/1/1(是的,我知道要做到这个只需要更改字段默认值,但这不是重点…)。
image 

<script type=”text/javascript” language=”javascript”>

// 搜索对应到每个字段的文本输入框
function searchFieldEditorElement(tagName, identifier, title) {
  var len = identifier.length;
  var tags = document.getElementsByTagName(tagName);
  for (var i=0; i < tags.length; i++) {
    var tempString = tags[i].id;
    if (tags[i].title == title && (identifier == “” || tempString.indexOf(identifier) == tempString.length – len)) {
      return tags[i];
    }
  }
  return null;
}

// 搜索对应到每个字段的“<TR>”标签
function searchParentTR(element)
{
    var parentElement = element.parentElement;
    if (parentElement == null)
    {
        return element;
    }
    if (parentElement.tagName.toLowerCase() == “tr”)
    {
        return parentElement;
    }
    return searchParentTR(parentElement);
}

function setFieldControls()
{
    // 将“标题”字段所对应的行隐藏起来
    var txtTitle = searchFieldEditorElement(“input”, “TextField”, “标题”);
    if (txtTitle != null)
    {
        var parentTr = searchParentTR(txtTitle);
        parentTr.style.display = “none”;
    }

    // 将“截止日期”字段所对应的文本框的值设置成“2008/1/1”
    var txtEndDate = searchFieldEditorElement(“input”, “DateTimeFieldDate”, “截止日期”);
    if (txtEndDate != null)
    {
        txtEndDate .value = “2008/1/1″;
    }
}

// 指定在页面载入后运行指定的JS函数
_spBodyOnLoadFunctionNames.push(“setFieldControls”);

</script>

image

通过灵活使用JavaScript,基本上我们可以实现我们所需要的大部分效果。

 

Posted by on 2008/03/25 in 未分类

53 Comments

Tags:

Be an Office Developer Hero !

Some funny videos from Office Developer Conference 2008. Enjoy! :)

Video: ODC2008 Swag Guy

Video: ODC2008 Architect Guy

Video: ODC2008 User Experience Person

Video: ODC2008 Developer Guy

Video: ODC2008 VBA Macro Guy

 

Posted by on 2008/03/23 in 未分类

Leave a comment

SharePoint Conference 2008 – Day 1

3月3号,SharePoint Conference 2008第一天。

SharePoint Conference的会场和公司内部的TechReady会议一样,也在西雅图市区的Washington Convention & Trade Center。一大早兴匆匆的就跑过去了,扶手电梯上方挂着SharePoint Conference 2008的大牌子,下面是三个最能描述SharePoint的关键字:Connect、Collabrate和Share。:)

image

办完了注册手续,就进到一个前方有两个大投影显示屏的房间,通过投影看keynote直播。为啥不能直接到keynote会场去现场看呢?原因就是今年的SharePont Conference的票很早就卖光了,等到我注册参会的时候,只能订到Overflow类型的票了。Overflow也就是说不能进到大会的keynote现场,只能在旁边的房间看直播…不过对于所有的课程session,当然还是和普通票一样啦。俺的参会牌的后面有一个大大的OVERFLOW标签,直接被会场人员就发配到旁边的直播间了:

image

keynote第一个上台的是SharePoint的产品经理,Tom Rizzo。我能参加这个会还得多亏他的帮助,因为我注册的时候,由于票已卖光,只能放到waiting list里面,后来还是我的老板给他发了一封邮件,让他帮忙才终于弄到了一张Overflow票…

image

Tom Rizzo把大家鼓动了一把之后,就请出了号称“微软第一SharePoint粉丝”的Bill Gates同志。

image

Bill Gates同志虽然演讲风格不敢恭维,但号召力还是相当强的。上台后又给大家看了一遍网上已经流传很广的“Bill Gate’s Last Day at Microosft”的搞笑Video,不过这次放的似乎和之前放的有稍许不同,因为我又看到了几个新面孔,包括沃伦巴菲特(对,就是那个股神巴菲特)。

在Bill Gates的keynote中,他正式宣布了SharePoint Online,这是一个面向企业和个人的在线托管SharePoint服务。你可以在这里看到更详细的有关SharePoint Online的信息,还可以用你的Live ID,免费试用一下SharePoint Online。

另外,在Tom Rizzo的keynote中,还发布了一个新的SharePoint资源站点:SharePoint Gear Up,里面有不少协助客户和技术人员进行SharePoint部署的资料。

技术Session在下午正式开始。第一场我去听的《AMD: Deploying MOSS 2007 in a Complex, Global Environment》,是微软的几个GG讲述的AMD在企业Intranet、Extranet与Internet环境中实施SharePoint 2007的经验。课程内容没有什么很特别的,不过在讲述其经验的时候,讲到了他们在实施过程中,对SharePoint Customization进行了严格控制,每一个Customization都需要经过技术人员以及Business Man的审批…

第二节课程本来计划去听《Code Based List Form Customization in WSS 3.0》,光看名称就已经很吸引人了,而且其课程Level被标注成了400,更加让我觉得非听不可。可到了这个课程的教室门口,才发现,和我有同样想法的人太多了,而课程又被安排在一个小教室内,我到的时候,早已经满员,不让再进人了…

无奈之下只要跑去听《A Roll-Up of Fun & Lessons Learned Using the Content Query Web Part (CQWP)》,不过还算有所收获,算是了解了一把Content Query Web Part的强大功能,以及知道了微软内网MSW站点首页上那些东东原来都是用CQWP做的。

image

今天听的最后一节Session是《Collaborating with Customers on the Extranet with SharePoint 2007: Solutions and Best Practices》,这个Session是由一个微软的合作伙伴讲的(SharePoint Conference中不少课程是微软合作伙伴讲的,其特点是,通常会给自己公司,以及自己公司的某个产品做不少广告)。其实这个Session真可以说是一个标准的“广告Session”,因为大部分时间,都是在Demo这家公司在SharePoint上做的一个Extranet Collaboration Manager的东东。不过这个ExCM的东东功能确实做得不错,部署之后,可以通过配置让SharePoint Farm直接支持Forms Auth、User Self-Registration、Site Self-Provision Request、Site Request Approval Workflow等等。

整个下午都被时差效应所折磨,在会场喝了2罐可乐也无济于事,撑到课程都结束,就闪回酒店睡觉了…

 

Posted by on 2008/03/06 in 未分类

48 Comments

Tags: