Using msgbox server control for developing sharepoint 2010 webpart

Didalam pengembangan sharepoint webpart hal yang kecil artinya tapi cukup memberikan pengaruh yang besar adalah penerapan message box / alert dalam form webpart yang akan kita buat. Bagi kalangan developer sharepoint 2010 itu cukup mengganggu dalam kenyamanan coding. Umumnya para developer menggunakan client scripting yang di inject ke dalam webpart form.

Setelah saya cari cara yang paling baik dalam penerapannya entah itu menggunakan client scripting manapun, akhirnya pilihan saya adalah menggunakan sebuah server control yang di share oleh teman kita dari china yaitu Ning Liao, Liang yang seperti yang bisa kalian lihat di sini : http://www.codeproject.com/KB/webforms/NingLiangSimpleControl.aspxdi sini tersedia source server control yang dibuat masih menggunakan asp.net 1.1. Akan tetapi dengan sedikit modifikasi akhirnya komponen ini bisa saya jadikan component yang siap untuk dipasang di webpart manapun.

Berikut step by step-nya :

  1. Download source-nya dari : Download source of msgBox server control – 7 Kb
  2. Extract file zip-nya kemudian buka dari VS studio 2008 / VS 2010, biarkan proses konversi-nya berjalan.
  3. Tambahan key file *.snk dari project properties, tujuannya adalah untuk di daftarkan menjadi sebuah assembly yang bisa disimpan ke dalam GAC (Global Assemby Cache).
    image
  4. Setelah itu di build ulang oleh visual studio dengan mode release.
  5. Untuk menambahkan kedalam c:\windows\assembly saya sarankan gunakan tools gacutil yang terdapat dalam visual studio 2010 tools command prompt.image
  6. Setelah proses berhasil, selanjutnya kita coba membuat visual webpart dengan visual studio 2010.
  7. Buka visual studio 2010, buat proyek baru menggunakan template visual webpart.
  8. Dari bagian toolbox-nya visual studio 2010 tambahkan assembly msgBox, browse ke lokasi di : C:\Windows\assembly\GAC_MSIL\msgBox
    image
  9. Tambahkan 1 msgbox control kedalam body message manapun di webpart form kita, contoh-nya akan seperti ini :
    image
  10. Berikut-nya adalah kita modifikasi code dibelakang-nya, yang pertama harus dilakukan adalah menambahkan beberapa baris di dalam page_load dari webpart, seperti ini :Code Snippet – HTML ascx code
    1. <%@ Assembly Name=”$SharePoint.Project.AssemblyFullName$” %>
    2. <%@ Assembly Name=”Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
    3. <%@ Register Tagprefix=”SharePoint” Namespace=”Microsoft.SharePoint.WebControls” Assembly=”Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
    4. <%@ Register Tagprefix=”Utilities” Namespace=”Microsoft.SharePoint.Utilities” Assembly=”Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
    5. <%@ Register Tagprefix=”asp” Namespace=”System.Web.UI” Assembly=”System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ %>
    6. <%@ Import Namespace=”Microsoft.SharePoint” %>
    7. <%@ Register Tagprefix=”WebPartPages” Namespace=”Microsoft.SharePoint.WebPartPages” Assembly=”Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
    8. <%@ Control Language=”C#” AutoEventWireup=”true” CodeBehind=”testMsgBoxUserControl.ascx.cs”Inherits=”testMsgBox.testMsgBox.testMsgBoxUserControl” %>
    9. <%@ Register assembly=”msgBox, Version=1.0.4192.19499, Culture=neutral, PublicKeyToken=d7d8884f1b19ea9e”namespace=”BunnyBear” tagprefix=”cc1″ %>
    10. <cc1:msgBox ID=”msgBox1″ runat=”server” />
    11. <p>
    12. <asp:Button ID=”Button1″ runat=”server” onclick=”Button1_Click” Text=”Button” />
    13. <asp:TextBox ID=”TextBox1″ runat=”server” style=”margin-bottom: 0px”></asp:TextBox>
    14. </p>

    Code Snippet

    1. using System;
    2. using System.Web.UI;
    3. using System.Web.UI.WebControls;
    4. using System.Web.UI.WebControls.WebParts;
    5. using System.Web.UI.HtmlControls;
    6. using BunnyBear;
    7. namespace testMsgBox.testMsgBox
    8. {
    9. public partial class testMsgBoxUserControl : UserControl
    10.     {
    11. protected void Page_Load(object sender, EventArgs e)
    12.         {
    13. //PLEASE COPY THE FOLLOWING CODE TO YOUR Page_Load() WHEN USING THE SERVER CONTROL in your page
    14. if (IsPostBack)
    15.             {
    16. if (Request.Form[“hid_f”] == “1”)
    17.                 {
    18.                     Request.Form[“hid_f”].Replace(“1”, “0”);   //Reset the hidden field back to original value “0”
    19. //Here put your continuing processing code after user confirm
    20.                     msgBox1.alert(“hello ” + TextBox1.Text);
    21.                 }
    22.             }
    23. //END OF CODE TO BE COPIED
    24.         }
    25. protected void Button1_Click(object sender, EventArgs e)
    26.         {
    27. if (TextBox1.Text == null || TextBox1.Text == “”)
    28.                 msgBox1.alert(“Please input something in the text box.”);
    29. else
    30.                 msgBox1.confirm(“Hello ” + TextBox1.Text + “! do you want to continue?”, “hid_f”);
    31.         }
    32.     }
    33. }

     

  11. Setelah selesai, compile dan deploy kembali ke dalam sharepoint dan di test

Selamat mencoba.

Leave a Reply