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页面
原文地址:https://www.cnblogs.com/jinweijie/p/566667.html