• Ajax Web Part


    最近,自己写了一个Ajax Web Part

    详情请看文档:


    Ajax Web Part使用说明

    v1.0 Author: wjjin

    Overview

    AjaxWebPart原则上是通过WebPart Manager来操作WebPart,请不要直接调用WebPart中的方法。使用时,引用prototype.js和asyncWebPartPacked.js

    WebPart Manager

    WebPartManager是一个管理当前页面所有WebPart的类,主要负责控制页面所有WebPart的行为。

    构造方法

    var manager = new WebPartManager( true , false, "divStyle");
    参数列表:WebPartManager( 自动加载 , 自动Interval, 默认的div的class属性)

    其中,

    • 自动加载:页面加载的时候,是否加载WebPart,一般设为true
    • 自动Interval:页面加载的时候,是否让有IntervalTime属性的WebPart进行Interval,根据需要设置,一般为false,对于个别要interval的WebPart可以调用manager.stopWebPartInterval('div2')来进行设置。
    • 默认的div的class属性:每个WebPart的div class

    registerWebPart(webPart)

    注册一个WebPart到WebPartManager中。

    startAllInterval()

    让所有已注册的WebPart开始interval(设定过IntervalTime的WebPart)。

    stopAllInterval()

    停止所有WebPart的Interval。

    startWebPartInterval(divId)

    开始特定WebPart的Interval

    stopWebPartInterval(divId)

    停止特定WebPart的Interval

    refreshWebPart(divId)

    重新加载指定的WebPart

    refreshAllWebPart()

    重新加载所有WebPart

    makeNewRequest( divId, url, paras, invervalTime , method)

    让指定的WebPart发送新的Request

    refreshWebPartByElement(elem) [常用]

    重新加载当前element所在的WebPart

    startWebPartIntervalByElement(elem) [常用]

    开始当前element所在的WebPart的Interval

    stopWebPartIntervalByElement(elem) [常用]

    停止当前element所在的WebPart的Interval

    makeNewRequestByElement(elem, url, paras, invervalTime , method)) [常用]

    让当前element所在的WebPart发送新的Request

    refreshWebPartByElementId(elemId) [常用]

    重新加载id为elemId的Element所在的WebPart

    startWebPartIntervalByElementId(elemId) [常用]

    开始id为elemId的Element所在的WebPart的Interval

    stopWebPartIntervalByElementId(elemId) [常用]

    停止id为elemId的Element所在的WebPart的Interval

    makeNewRequestByElementId(elemId, url, paras, invervalTime , method)) [常用]

    让id为elemId的Element所在的WebPart发送新的Request

    WebPart

    使用一个WebPart,首先,创建WebPart实例:

    var webPart1 = new WebPart("div1", "GetWebPartJS.aspx", "&WebPartID=1&customPara=hi", false, "<img src='images/indicator.gif' />",1000, "get");

    参数列表:var webPart1 = new WebPart(Div的Id, 目标URL, 参数, 是否Load完毕以后执行WebPart内容中的Javascirpt, Loading时候显示的内容, 自动刷新的时间, Method);

    其中,

    • 目标URL:一般都是GetWebPartJS.aspx页面。当然也可以是其他页面,如果需要的话。
    • 参数:不用带HtmlContainer,因为已经在程序里处理过了。
    • 是否Load完毕以后执行WebPart内容中的Javascirpt:比如,WebPart中有一段<script>alert("i'm from webpart.");</script>,如果为true,则当WebPart Load完毕之后,自动执行,为false,则不执行。
    • Loading时候显示的内容:可以是一段Html,在请求发出到请求响应成功时显示。
    • 自动刷新的时间:WebPart每隔x毫秒自动刷新
    • Method:Get或者Post方法(默认Get)

    然后,注册到WebPartManager中:

    manager.registerWebPart(webPart1);

    Sample

    创建并注册WebPart

    var webPart1 = new WebPart("div1", "GetWebPartJS.aspx", "&WebPartID=1&customPara=hi", false, "<mg src='images/indicator.gif' />",null, "get");
    var manager = new WebPartManager( true , false, "divStyle");
    manager.registerWebPart(webPart1);

    创建并注册一个Interval的WebPart

    var webPart1 =   new WebPart("div1","GetWebPartJS.aspx","&WebPartID=1&customPara=hi", false, "<mg src='images/indicator.gif' />",1000, "get");
    var manager = new WebPartManager( true , false, "divStyle");
    manager.registerWebPart(webPart1);
    manager.startWebPartInterval('div1');

    在WebPart中实现让自己刷新

    在WebPart中,可以用一个Dom Element作为参数,用manager对Dom Element所在的div进行操作

    然后在前台代码里调用manager对象(这个对象已经在WebPart所应用的页面实例化了):

    <input type=button value="click me! then i'll reload this webPart myself."  onclick="manager.refreshWebPartByElement(this);" ID="Button1" NAME="Button1"/>

    在WebPart中实现让自己请求另外一个页面:

    基本步骤同上,只是调用一下manager的makeNewRequestByElement( elem, url, paras, invervalTime , method)方法。

    <input type=button 
    value="click me! then i'll make a new request to.TestPage2Remote.aspx." onclick= "manager.makeNewRequestByElement(this,'GetWebPartJS.aspx','&WebPartID=2&customPara=hi',null, null);" ID="Button1" NAME="Button1"/>

    让包含特定id的element所在WebPart请求另外一个页面:

    基本步骤同上,只是调用一下manager的makeNewRequestByElementId( elem, url, paras, invervalTime , method)方法。

    <input type=button 
    value="click me! then i'll make a new request to.TestPage2Remote.aspx." onclick= "manager.makeNewRequestByElementId('someElementId','GetWebPartJS.aspx','&WebPartID=2&customPara=hi',null, null);" ID="Button1" NAME="Button1"/>
    Sample页面
  • 相关阅读:
    合格的PM的SkillSet
    SharePoint 客户端对象模型 (一) ECMA Script
    SharePoint 2010的学习-概览
    IT专业人士以及开发者眼中的SharePoint2010搜索
    某跨国公司Web2.0战略架构详解
    Extending your MOSS site with ASP.NET AJAX 1.0
    SliverLight Web part
    SHAREPOINT CAML列表查询
    SharePoint 2010 沙盒开发
    JS Bin 在线编辑代码,所见所得
  • 原文地址:https://www.cnblogs.com/jinweijie/p/566667.html
Copyright © 2020-2023  润新知