MOSS 2007 : Howto override page redirection Url
English (versi bahasa Indonesia)
I had a question from one of my friend “How can I override page redirection Url?”. He was using inline C# code which is not my preference – because it adds additional page-parser process and introduce new security consideration. His code also diminish upload attachment function in the original form.
My first suggestion was to create a new links that construct custom “Source=” url to the original form – but this is not what he looks for. He doesn’t want to replace the “New Item” menu with a link.
So in this case, he wants to click “New Item” menu in a list and redirected to custom page after sucessfull submission or cancelation.
Technically, after we click “New Item” we’ll be redirected to “..\NewForm.aspx?RootFolder=….&Source=….”. And guess what – the “Source” is the location after we submit “OK” or press “Cancel”.
So – how can we change the “Source” url? Use Javascript !
Open “NewForm.aspx” using SharePoint Designer and find “PlaceHolderMain” content Id. Place following custom javascript just after tag definition.
function PreSaveAction()
{
// TODO : create some actions here
return true;
}
Remember that the name of the function MUST BE PreSaveAction and it must return true.
Next, in the function I add operation to replace original action url with the new construction – I just need to change the text after “Source”. What you need to do, is change newSrcUrl variable to match with the custom page in your location.
––o0o––
Indonesia (see English version)
Baru-baru ini saya mendapat pertanyaan dari seorang kawan tentang “Bagaimana cara mengganti halaman redirect? “. Menurutnya, dia sudah menggunakan inline C# namun akibatnya dia tidak dapat memanfaatkan upload attachment yang ada di form asli. Saya sendiri kurang sependapat dengan penggunaan inline C# itu, sebab inline C# akan menambah beban kerja server untuk memparsing dan juga membuka resiko keamanan yang baru.
Anjuran saya adalah dengan menggunakan link yang sudah diubah sedemikian rupa sehingga “Source” url disesuaikan dengan apa yang diinginkan. Tapi saran tersebut tidak sesuai dengan keinginannya, karena hal ini berarti mengganti menu “New Item” dengan menggunakan link.
Jadi, yang dia inginkan adalah tetap menggunakan menu “New Item” tetapi dapat mengganti halaman yang dibuka setelah submit atau cancel.
Pada dasarnya, setelah kita mengklik “New Item” , maka kita akan diarahkan pada alamat “..\NewForm.aspx?RootFolder=….&Source=….”. Dan “Source” adalah lokasi yang akan dibuka ketika kita mensubmit form dengan mengklik “OK” atau menekan “Cancel”.
Jadi bagaimana kita dapat mengganti “Source” url? Gunakan Javascript !
Buka “NewForm.aspx” dengan menggunakan SharePoint Designer, dan cari tag id yang bertuliskan “PlaceHolderMain”. Kemudian tambahkan javascript berikut setelah tag tersebut,.
function PreSaveAction()
{
// TODO : create some actions here
return true;
}
HATI-HATI, bahwa nama fungsi javascript tersebut HARUS PreSaveAction dan nilai kembaliannya HARUS true.
Didalam fungsi javascript yang baru, kita hanya perlu menambahkan operasi untuk mengganti action url yang lama dengan action url baru. Di action url baru inilah kita definisikan “Source” url agar merujuk pada halaman web custom yang kita inginkan. Dari gambar diatas, Anda hanya perlu mengganti variable newSrcUrl agar sesuai dengan yang diinginkan – atau kalau perlu merubah operasi untuk mengganti “Source” url agar lebih robust.
––o0o––