為列表型別繫結event receiver可以通過新增乙個feature, 並在feature中新增乙個receiver element來完成.
具體詳見sharepoint中的eventreceiver 之二 繫結event receiver到列表型別或列表例項.
要建立乙個event receiver, 你必須建立繼承自乙個特別的由wss object model的event receiver的基類. 還乙個很重要的地方需要注意的是, event receiver類必須在投入使用或測試之前, 編譯到強命名的程式集, 並被部署到gac中.
下面的例子中的類繼承自splisteventreceiver, 所以它可以處理基於列表的事件. 就像所有的event receiver類中一樣, 你通過重寫在基類裡定義的方法來建立event handler方法的實現.
using system;這個vendorlisteventreceiver通過過載名字為fieldadding, fieldupdating, 和fielddeleting的三個方法提供了三個event handler. 因為所有這三個events都是在事件發生之前被處理的, 不管是那種原因引起事件的觸發, 這些event handlers都可以取消掉事件. 在這種情況下, 三個event handler使用splisteventproperties引數來賦予乙個錯誤資訊, 然後取消了事件. 在這些event handler被恰當地繫結到列表之後, 他們會阻止使用者(即使是有管理員許可權的使用者)向列表中新增, 修改, 或刪除任何乙個field.using microsoft.sharepoint;
namespace litwaretypes
public override void fieldupdating(splisteventproperties properties)
public override void fielddeleting(splisteventproperties properties)
}}
現在讓我們來討論一下如何把event receiver類中的event handler與乙個列表型別繫結起來. 你可以通過在乙個feature中新增乙個receiver element來完成繫結. receivers element有乙個值為10001的listtemplateid 屬性, 它繫結receivers到自定義的列表型別的所有的例項上. 注意, 在receiver element之中, 每乙個event handler都有乙個獨立的receivers element. 你應該觀察到每乙個event handler方法都必須繫結到它自己的receiver element上, 因為沒有其他的方法能夠一次繫結多個event handler.
<上面的通過receivers element來繫結event handler的技術有幾個值得注意的侷限性.elements
xmlns
="">
<
receivers
listtemplateid
="10001" >
<
receiver
>
<
name
>field adding event
name
>
<
type
>fieldadding
type
>
<
assembly
>litwaretypes, [full 4-part assembly name goes here]
assembly
>
<
class
>litwaretypes.vendorlisteventreceiver
class
>
<
sequencenumber
>1000
sequencenumber
>
receiver
>
<
receiver
>
<
name
>field updating event
name
>
<
type
>fieldupdating
type
>
<
assembly
>litwaretypes, [full 4-part assembly name goes here]
assembly
>
<
class
>litwaretypes.vendorlisteventreceiver
class
>
<
sequencenumber
>1000
sequencenumber
>
receiver
>
<
receiver
>
<
name
>field deleting event
name
>
<
type
>fielddeleting
type
>
<
assembly
>litwaretypes, [full 4-part assembly name goes here]
assembly
>
<
class
>litwaretypes.vendorlisteventreceiver
class
>
<
sequencenumber
>1000
sequencenumber
>
receiver
>
receivers
>
elements
>
現在我們來討論一下如何繫結event handlers到乙個列表例項上, 而不是繫結到列表型別上. 下面的例子展現了使用wss object model來繫結vendorlistreceiver類的event handler到名為vendors的列表例項上. 這裡的**是寫在featureactived方法中的. 當你使用這種方式新增event handler的時候, 事件繫結的資訊會被寫入內容資料庫中, 就如同其他修改目標列表的自定義一樣.
public override void featureactivated(spfeaturereceiverproperties properties)除了可以為列表型別新增event receiver以外, moss 2007還可以在如下的三種物件的例項上新增event receiver.
為他們新增event receiver可以通過sharepoint object model來完成, 核心**為以下的函式呼叫.
speventreceiverdefinitioncollection.add
新增的關鍵**片段如下:
if (node.tag is splist)移出的關鍵**如下:if (node.tag is spcontenttype)
if (node.tag is spweb)
treenode node = treeviewitems.selectednode;speventreceiverdefinition er = (speventreceiverdefinition)node.tag;
if (messagebox.show("are you sure you want to remove this event handler?", "event handler explorer",
messageboxbuttons.yesno, messageboxicon.question) == dialogresult.yes)下面的連線有介紹使用方法.{ er.delete();
free tool: register event handlers programmatically (wss 2007)
MVC 中將列舉型別繫結到下拉列表
一 建立乙個如下的擴充套件方法 static selectlist toselectlist tenum this tenum enumobj return newselectlist values,id name enumobj 二 控制器裡 如下 其中postatus是枚 舉型別 public ...
MVC jQuery資料繫結 列表繫結(三)
除了繫結table外,還有其他的迴圈列表需要繫結。其實都一樣,都是把模版化成資料。模板的存法用注釋的方式只是一種方法。更好的方法自由發揮。目前就是為了取得模板。比如 用乙個json來存放需要的template,然後專門放在乙個templates.js裡或由xml配置的模板然後生成json資料,需要用...
C 列舉型別繫結下拉列表框
列舉的顯示名稱 global system.attributeusage attributetargets.field,inherited false,allowmultiple false public sealed class enumshownameattribute attribute 構造...