SharePoint:擴充DVWP – 第5部分:在儲存操作提交前做些事情——PreSaveAction()

來源:互聯網
上載者:User
文章目錄
  • PreSaveAction()
  • 在DVWP中使用PreSaveAction()
  • 運行效果

有時使用者會在我們設想的順序之前點擊確定。不管是需要在儲存資料前先進行驗證,還是要抓一些其他的資訊,或者是建立一個通知讓使用者知道一些事情,都可以利用SharePoint的一個內建功能,該功能允許我們在儲存資訊被提交前截取確認按鈕的點擊事件。

事實上,我們甚至可以在標準的預設列表表單(類似NewItem.aspx等等)上使用該功能,除非你根本就不打算進入編輯狀態。

PreSaveAction()

在SharePoint裡預設的儲存(或確定)按鈕會在進行其他動作前首先調用PreSaveAction(),它是個空函數。所以,我們可以利用它來在清單項目儲存之前做些事情,甚至如果需要的話可以阻止其儲存。

只需簡單的將PreSaveAction()Javascript函數添加到頁面上的一個內容編輯器WebPart (簡稱CEWP)裡即可。如下:

<script language="javascript" type="text/javascript">function PreSaveAction() {    // 做一些事情 - 在接下來的博文中,你將看到建議在這裡做的事    return true; //如果事情進展順利…    //或    return false; // 如果事情進行的有問題…}</script>
在DVWP中使用PreSaveAction()

如果你一直關注擴充DVWP系列的話,一定很關心這個功能在DVWP中該怎麼使用。在一個DVWP的列表表單操作中,不會調用PreSaveAction(),但是我們可以讓它去調用,同樣也很簡單。

若要從一個表單操作鏈結接中調用PreSaveAction(),只需在GenFireServerEvent調用前添加一個到它調用即可。

即,從原來的:

<a href="javascript: {ddwrt:GenFireServerEvent('__commit')}">儲存檔案</a>

變成:

<a href="javascript: if(PreSaveAction()) {ddwrt:GenFireServerEvent('__commit')}">儲存檔案</a>

通過把該調用放置在if條件裡,我們可以確保當我們不想後面的部分運行時就不會運行。也就是說,我們實現了與開箱即用的確定按鈕同樣的功能。

運行效果

最極端的一個實驗,如果將PreSaveAction()寫成下面這樣:

function PreSaveAction(){    alert("不允許修改!");    return false;}

就可以從頁面層次阻止使用者對列表資料的修改了。以下是在EditForm.aspx中點擊“確定”按鈕的運行效果:

在資料檢視Web組件中點擊“儲存檔案”連結時的運行效果:

 

下一篇中:我們將討論如果在DVWP的列表表單操作中使用工作流程。

 

參考資料

SharePoint: Extending the DVWP – Part 5: Doing Stuff Before Save on Submit – PreSaveAction()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.