Arsip Kategori: jQuery dan SharePoint

Mengatasi masalah yang mengganggu dengan URL relatif dalam peluncuran cepat SharePoint

Saya ingin menambahkan link ke navigasi peluncuran cepat hari yang lain dan SharePoint mengatakan:

image

Versi teks murni yang:

Memastikan bahwa URL yang valid dan dimulai dengan baik karakter yang valid (tanda nomor (#) atau miring (/)) atau yang valid didukung protokol (misalnya, ' http://’, ' https://’, ' file://’, ' ftp://’, ' mailto:’, ' Berita:’).

"Blech dan cacar!"Aku berkata.

Solusi ini adalah dengan menggunakan JavaScript untuk menemukan link dikenal dalam peluncuran cepat dan mengesampingkan perilaku.

Untuk menguji ini, menambahkan link baru ke situs tes thusly:

image

Saya menggunakan jQuery. Mengatasinya, mendapatkan beberapa JavaScript dan jQuery ke halaman menggunakan teknik favorit Anda dan dengan baris kode seperti ini:

 

$(dokumen).siap( fungsi () {

    $("a:berisi('Test penggantian URL')").Klik(fungsi () { peringatan("Klik mengubah perilaku!"); kembali palsu;});

});

Dan Bob paman Anda.

Pemilih jQuery menemukan setiap <a> Tag yang memiliki "URL pengujian penggantian" dalam namanya. Anda mungkin ingin menemukan-tune yang tergantung pada link dan seperti.

.Click(fungsi() mengabaikan apa pun SharePoint akan dilakukan ketika pengguna mengklik. Pastikan Anda "return false" atau yang lain itu akan melakukan barang-barang Anda dan kemudian mencoba untuk hal href yang terlalu, yang merupakan hampir pasti tidak tujuan Anda.

Ini dilakukan dan tes di lingkungan online SharePoint tetapi harus bekerja baik di 2010 dan sebelumnya terlalu.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Cepat dan sederhana: Memecahkan "Parameter URL tidak valid” masalah dengan UpdateListItems di lists.asmx

Ketika bekerja dengan UpdateListItems melalui lists.asmx, sangat mudah untuk menghasilkan kesalahan:

Parameter URL tidak valid.

URL yang diberikan berisi perintah tidak sah atau nilai. Silakan periksa URL lagi.

Anda dapat mendapatkan error ini ketika Anda lupa untuk menyertakan ID di daftar bidang untuk memperbarui.  Ini, seperti banyak layanan web ini SP, ini agak berlawanan karena Anda perlu menyertakan ID di atribut ID <Metode> elemen.  Dan Anda tidak diperbarui ID dan mungkin tidak pernah ingin di tempat pertama.

Ini sabun amplop bekerja:

<soapenv:Amplop xmlns:soapenv =' http://schemas.xmlsoap.org/Soap/Envelope/'>
  <soapenv:Tubuh>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/Soap/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <Update>                     
         <Batch OnError ="Lanjutkan">
          <Metode ID ="1" CMD ="Update">
            <Bidang nama ="CooperativeLock">terkunci!</Bidang>
            <Bidang nama ="ID">1</Bidang>
          </Metode>
        </Batch>                     
        </Update>                
      </UpdateListItems>             
  </soapenv:Tubuh>         
</soapenv:Amplop>

Jika Anda menghapus bidang ID referensi maka Anda akan mendapatkan pesan "Invalid URL parameter" mengganggu.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

 

Orang miskin di Caching di JavaScript

[TL;DR versi: menggunakan cookies untuk menyimpan hasil async panggilan; membuat hasil masa lalu async panggilan segera dan kemudian memvalidasi mereka setelah beban halaman.]

Saya telah bekerja pada situs SharePoint intranet untuk klien yang fitur, di antara hal lain, navigasi sekunder yang bergaya pilihan menu yang dikelola melalui daftar kustom tua biasa.  Idenya adalah bahwa klien mendapatkan untuk mengontrol menu situs "mereka" tanpa mempengaruhi atau sedang dipengaruhi oleh navigasi global yang dikeluarkan oleh itu.

(ada sesuatu yang sangat subversif tentang menambahkan CEWP yang menunjuk ke sebuah file HTML yang memuat beberapa CSS dan JS untuk secara fundamental mengubah hampir segala sesuatu tentang perilaku situs... tapi itu untuk pos lain)

Kode untuk ini cukup sederhana:

Sini tempat sakit adalah bahwa setiap kali ada hits salah satu halaman situs, browser web pengguna yang menjangkau untuk mendapatkan item dari daftar.  Setelah dev lengkap dan pengujian telah membuktikan hal-hal yang stabil dan lengkap, panggilan ini tidak perlu lebih dari 99% waktu sejak menu jarang berubah.  Ini juga memiliki mempengaruhi UI aneh yang umum dalam ini dunia baru yang berani situs web hiper-ajaxy-halaman menulisnya dan hanya kemudian membuat menu.  Sangat gelisah dan mengganggu dalam pandangan saya.  Dan gelisah. Jadi, caching. 

Aku diubah logika thusly:

  • Mencari cookie di browser yang berisi menu aku terakhir membacanya
    • Jika ditemukan, membuat itu segera.  Jangan menunggu untuk halaman untuk selesai loading.  (Anda perlu memastikan bahwa HTML Anda ditempatkan secara strategis di sini, Tapi itu tidak sulit untuk dilakukan).
  • Menunggu halaman selesai loading dan membuat async panggilan untuk memuat menu item dari daftar menggunakan sisa atau lists.asmx atau apa pun
  • Membandingkan apa yang saya Dapatkan terhadap cookie
    • Jika cocok, Stop
    • Jika tidak, menggunakan jQuery, dinamis mengisi setumpuk jika <Li>di dalam <UL>
  • Gunakan CSS untuk melakukan semua format
  • Keuntungan!

Beberapa dari Anda akan mengatakan, "Hei! ada tidak ada nyata caching terjadi di sini karena Anda sedang membaca menu tetap setiap kali.”  Dan kau benar-aku tidak memberikan server jenis istirahat.  Namun karena panggilan async dan terjadi setelah halaman awal muatan HTML sepenuhnya menuliskan, ia "merasa" lebih responsif terhadap pengguna.  Menu menuliskan cukup banyak seperti halaman yang menarik.  Jika menu terjadi perubahan, pengguna terkena gelisah menggambar ulang menu, tetapi hanya satu kali.

Ada beberapa cara untuk membuat ini caching lebih efektif dan membantu keluar server pada saat yang sama:

  • Dimasukkan ke dalam aturan "cookie cache" itu berlaku untuk minimal 24 jam atau beberapa jangka waktu lain. Selama ada kuki tidak kedaluwarsa, menggunakan cookie menu snapshot dan tidak pernah memukul server.

Yah... itu semua yang datang ke pikiran sekarang :). 

Jika seseorang memiliki ide-ide cerdas di sini saya ingin tahu mereka.

Dan terakhir-teknik ini dapat digunakan untuk hal-hal lain.  Halaman ini klien memiliki sejumlah hal data-driven pada berbagai halaman, banyak dari mereka mengubah relatif jarang (seperti satu minggu sekali atau sebulan sekali).  Jika Anda menargetkan daerah tertentu dari fungsi, Anda dapat memberikan UI lebih responsif dengan konten menarik dari toko lokal cookie dan rendering segera.  Rasanya lebih cepat kepada pengguna bahkan jika Anda tidak menyelamatkan server setiap siklus.  Anda dapat Simpan siklus server oleh memutuskan pada beberapa kondisi dan memicu untuk membatalkan cache lokal cookie ini.  Itulah semua situasional dan barang-barang berseni dan benar-benar yang paling menyenangkan :). 

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

XSLT dan jQuery sampel

Saya telah melakukan banyak XSLT, jQuery, dan pikir saya akan berbagi beberapa potongan yang orang lain mungkin menemukan berguna di masa depan.

Contoh 1: Memancarkan JavaScript sederhana / jQuery dalam XSLT:

<Extensible Stylesheet Language:template pertandingan = "sesuatu" XML:ruang = "melestarikan">

  <!– Kosong keluar bidang tersembunyi ramah filter permintaan –>
  <script type = "text/javascript">
    $(dokumen).siap(fungsi(){
      $("#QueryFriendlyFilters").Val("kosong");
    });
  </script>

</Extensible Stylesheet Language:template>

Sedikit memancarkan beberapa JavaScript yang menunggu untuk halaman untuk menyelesaikan pemuatan (karena $(dokumen).siap(…)) dan kemudian set nilai bidang tersembunyi bernama QueryFriendlyFilters nilai literal "kosong".

Contoh 2: Penggunaan <Extensible Stylesheet Language:Jika> untuk memeriksa "lebih besar",  "kurang", dll.

<Extensible Stylesheet Language:template pertandingan = "sesuatu" XML:ruang = "melestarikan">

  <DIV id = "fdcAllFilters">
 
    <Extensible Stylesheet Language:Jika test="@Count>0">
      <span class = "fdcFilterLabel">Current filter:</rentang>
    </Extensible Stylesheet Language:Jika>

    <!– lebih banyak barang yang terjadi di sini. –>

</Extensible Stylesheet Language:template>

Potongan di atas memeriksa untuk melihat apakah atribut yang bernama "Count" dari "sesuatu" elemen yang lebih besar dari nol.  XML di balik ini akan menjadi sesuatu seperti:”

<sesuatu Count = "5" />

Contoh 3: Iterate melalui semua elemen, interspersing jQuery panggilan.

<!– Iterate melalui semua filter dan menampilkan yang benar  link. –>
<Extensible Stylesheet Language:untuk setiap = pilih "UserFilter">

  <kelas = "FilterHref" href = "javascript:mySubmitPage('RemoveUserFilter','{@ ID}’)">[X]</a>

  <span class = "fdcFilterLabel"><Extensible Stylesheet Language:nilai dari select="@FilterValue"/></rentang>

  <script type = "text/javascript">

    $(dokumen).siap(fungsi(){
        <Extensible Stylesheet Language:teks><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></Extensible Stylesheet Language:teks>\"<Extensible Stylesheet Language:nilai dari select="@FilterValue"/>\"<Extensible Stylesheet Language:teks><![CDATA["));]]></Extensible Stylesheet Language:teks>
    });

  </script>

</Extensible Stylesheet Language:untuk setiap>

Potongan di atas adalah yang paling kompleks dan mungkin ada cara mudah untuk melakukannya.

XML di balik ini terlihat kira-kira seperti ini:

<UserFilter ID = "123" FilterValue = "xyzzy" />

Potongan ini iterasi melalui <UserFilter> node. 

Pertama memancarkan jangkar tag yang ketika diklik memanggil fungsi JavaScript yang sudah pada halaman, "mySubmitPage" dan melewati nilai atribut <UserFilter> simpul yang bernama "ID". 

Itu kemudian memancarkan beberapa jQuery yang menunggu untuk halaman untuk memuat.  JQuery update bidang tersembunyi yang bernama "QueryFriendlyFilters" dengan menambahkan nilai atribut FilterValue.  Catatan semua gila <Extensible Stylesheet Language:teks> dan <![CDATA[ … ]]> barang.

That's it, hope it helps!

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Lists.ASMX, GetListItems dan folder

Aku sedang melakukan penelitian untuk seseorang hari ini sekitar list.asmx web layanan yang disediakan sebagai bagian dari SharePoint 2010 (dan sebelumnya).  Ia mampu untuk mendapatkan daftar item di folder akar (termasuk nama subfolder), tapi tidak bisa mendapatkan barang-barang dalam subfolder.  Aku melakukan beberapa memandang berkeliling di the internets dan pertanyaan yang mengejutkan umum.  Namun, Saya tidak bisa mendapatkan jawaban yang bagus untuk pertanyaan sederhana, "jika saya tahu folder, Bagaimana saya mendapatkan item di folder?”  Jujur, Aku tidak mencoba terlalu keras karena aku ingin angka satu ini keluar pada saya sendiri untuk sementara waktu Tersenyum.

Untuk mengatur hal ini, Saya membuat sebuah situs bernama "Blogging skenario" dan daftar kustom bernama "Daftar dengan Sub folder".  Saya kemudian membuat folder bernama:

  • Tahun 2005
  • Tahun 2006
  • Tahun 2007

Saya menambahkan beberapa item ke folder "Tahun 2006".  Ini adalah apa yang tampak seperti:

image

Teman saya tidak menulis C# kode tapi agak menggunakan Java, Jadi SOAP amplop adalah apa yang dia benar-benar diperlukan.  Untuk mendapatkan itu, Saya menulis sedikit jQuery dan kemudian digunakan fiddler untuk mendapatkan percakapan HTTP sebenarnya.

Berikut adalah relevan jQuery (Aku menyalin kode turun di bawah ini jika Anda ingin copy/paste):

image

Mereka kunci pertama adalah untuk memasukkan kedua <queryOptions> dan <QueryOptions> node.  Tombol kedua adalah bahwa <Folder> simpul adalah URL yang klien memiliki akses.

Mungkin ada cara lain untuk mendapatkan ini, Tapi ini bekerja dengan baik bagi saya ketika menggunakan jQuery.

Berikut adalah SOAP amplop untuk di atas:

<soapenv:Amplop xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Tubuh>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Daftar kustom dengan Sub folder</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef nama =' judul’ />
          <FieldRef nama ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/blog Skenario/daftar/Custom daftar dengan Sub folder/tahun 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Tubuh>
</soapenv:Amplop>

Banyak contoh dan diskusi sekitar ini membawaku untuk percaya bahwa semua saya butuhkan adalah <QueryOptions> dan tentukan nama folder.  Bagi saya, Saya perlu untuk kedua bungkus dalam <queryOptions> serta menentukan URL yang memenuhi syarat untuk <Folder> node.

Here's the jQuery AJAX setup:

$(dokumen).siap(fungsi() {
       var soapEnv =
           "<soapenv:Amplop xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Tubuh> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Daftar kustom dengan Sub folder</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef nama =' judul’ /> \
                              <FieldRef nama ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Skenario/daftar/Custom daftar dengan Sub folder/tahun 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Tubuh> \
           </soapenv:Amplop>";

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Lists.ASMX, GetList dan "nilai tidak boleh null”

Hari ini saya menemukan bahwa GetList() metode dalam Lists.ASMX Layanan web telah dipanggil sangat hati-hati atau rentan untuk melemparkan misterius pengecualian "Nilai tidak boleh null" (dan itu dengan anggapan Anda dapat melewati lebih buruk pesan kesalahan umum, "Pengecualian jenis ' Microsoft.SharePoint.SoapServer.SoapServerException’ dilemparkan.")  Khusus, Saya menemukan bahwa Anda tidak dapat menyediakan jenis awalan pada metode GetList.  JQuery potongan berikut menggambarkan titik:

image

Jika Anda melakukannya, Layanan web menanggapi dengan "Nilai tidak boleh null" seperti ini Fiddler-disediakan HTTP transkrip:

<?Versi XML = "1.0" pengkodean = "utf-8"?>
  <sabun:Amplop
     xmlns:sabun ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:XSI = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/ 2001/XMLSchema">

  <sabun:Tubuh>
    <sabun:Kesalahan>
      <faultcode>sabun:Server</faultcode>
      <faultstring>
        Pengecualian jenis ' Microsoft.SharePoint.SoapServer.SoapServerException’ terlempar.
      </faultstring>
      <detail>
        <errorstring xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Nilai tidak boleh null.
        </errorstring>
      </detail>
    </sabun:Kesalahan>
  </sabun:Tubuh>
</sabun:Amplop>

Tentu saja, Anda mungkin tidak akan menambahkan awalan "s0" itu sendiri, tetapi beberapa alat cenderung melakukannya (seperti Eclipse).

Ini semua lebih membingungkan / frustrasi karena metode lain mentolerir awalan.  Misalnya, The GetListCollection metode tidak keberatan jika itu adalah bahasa, bahkan dengan awalan omong kosong seperti "xyzzy":

image

Ini "nilai tidak boleh null" tampaknya cukup umum dengan lists.asmx jadi mudah-mudahan ini akan membantu seseorang di masa depan.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Tanpa henti bersarang <div> Tag dan jQuery

Ini tampaknya seperti eksentrik topik, I 'm not sure it's benar-benar worth blogging tentang, tapi itu tidak pernah berhenti saya sebelumnya, Jadi di sini kita pergi Tersenyum

Saya bekerja pada sebuah proyek di mana aku menarik beberapa data dari pencarian, Kemasan ini ke pesan XML dan kemudian XML yang pada akhirnya berubah menjadi HTML melalui XSLT.  Ada banyak jQuery yang terlibat, salah satu dari sedikit yang mengimplementasikan beberapa fungsi tabbing.  Bila Anda klik pada tab (Benarkah, a <div>), jQuery memanggil .hide() dan .show() pada berbagai divs (beban awal halaman download semua konten jadi tidak ada postbacks dalam hal ini).

Sekelompok menit yang lalu, tab beralih logika mulai bersikap tak menentu dan itu tidak menunjukkan salah satu tab saya.  Saya akhirnya dilacak ke kenyataan bahwa internet explorer (setidaknya) berpikir bahwa <div> Tag bersarang jauh, jauh lebih dalam daripada yang dimaksudkan.Toolbar pengembang akan menunjukkan:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <-akhirnya menunjukkan itu ditutup sepanjang jalan di sini!

Jadi, Jika saya melakukan $("#Tab1Content").Sembunyikan(), Saya juga akan menyembunyikan Tab2 dan aku tidak pernah bisa menunjukkan Tab2 jika aku juga tidak menunjukkan Tab1.  Aku disalin dan disisipkan kode ke visual studio dan menunjukkan semua lapisan div up manis, sama seperti mereka seharusnya melakukan, tampak seperti ini:

-<div id = "Tab1Content">
  +<div>
  +<div>
-<div id = "Tab2Content">
  +<div>
  +<div>

Aku mengalahkan kepalaku ke dinding untuk sementara dan melihat bahwa dalam HTML sebenarnya kode ini menghasilkan banyak kosong <div> Tags, seperti:

<bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> ">

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

</bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> ">

(Di atas adalah waaaaaaaaaaaay yang disederhanakan.  Tag div kosong benar-benar berlaku. Beberapa saya <div> Tag yang penuh dengan konten, tetapi banyak lagi tidak.  Saya datang ke realisasi bahwa saya <Extensible Stylesheet Language:untuk setiap> arahan yang memancarkan bentuk pendek div tag ketika xsl:tidak untuk setiap ' menemukan data.  Aku memaksa komentar HTML ke output, seperti yang ditunjukkan:

image

 

Setelah saya melakukan itu, Semua div berbaris dengan baik dan tab beralih mulai bekerja.

Seperti biasa, Saya harap ini membantu seseorang dalam keadaan darurat.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Namun lebih jQuery–Mengubah ukuran gambar contoh

Saya mewarisi bagian web dari klien vendor tua dan memiliki masalah ukuran gambar.  Gambar harus 60×50 tapi untuk beberapa alasan aneh, vendor asli memaksa mereka ke dalam 42×42, begitu mereka melihat tergencet:

 

Baik gambar

Citra buruk

Berikut adalah markup (agak sederhana):

<Tabel kelas = 'diperpanjang-outlook'>
  <thead>
    <TR>
      <th  lebar ='100′>3 Selasa</th>
    </TR>
  </thead>

  <tbody>
    <kelas TR = 'ramalan'>
      <lebar TD ='100′>
        <UL>
          <Li kelas = 'tinggi'>Tinggi: 72&deg;F</Li>
          <Li kelas = 'rendah'>Rendah: 44&deg;F</Li>
          <Li kelas = 'kondisi'>Cerah
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/Trans/cond007.png’ lebar ='42’ tinggi ='42’ Alt =” />
          </Li>
        </UL>
      </TD>
    </TR>

  </tbody>

</Meja>

Anda akan perhatikan bahwa meskipun path ke gambar sendiri menunjukkan dimensi yang tepat (60×50) vendor asli memaksa dalam 42×42.  Mengapa?  Gila.

Pokoknya, Saya menginginkan solusi cepat dan mudah untuk masalah ini dan aku berpaling untuk jQuery.  Triknya adalah untuk menemukan semua yang sesuai <img> Tag.  Aku tidak ingin Bergelandangan dengan tag img lain (yang ada banyak).  Ini sedikit jQuery melakukan trick:

<jenis script = text/javascript"" src ="http://Ajax.googleapis.com/Ajax/libs/jQuery/1.5/jQuery.min.js"></script>

<script type = "text/javascript">
     $(dokumen).siap(fungsi () {

         $(' li.condition > img').masing-masing(fungsi (Indeks, item)
           
{
             $(item).CSS("lebar", "60"); 
             $(item).CSS("tinggi", "50");
            });
     }); // pada beban dokumen
</script>

Sedikit kode menemukan koleksi <Li> Tag kelas yang adalah "kondisi" dan <img> anak-anak.  Ini kemudian iterates melalui semua itu.  Bekerja seperti pesona.

Aku mungkin bisa merampingkan, tapi aku tidak pernah tipe orang unix yang dipecahkan π untuk 18 digit presisi menggunakan sed dan awk dan aku tidak seperti itu jika jQuery pria baik Tersenyum.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Menerapkan sistem pemberitahuan Pop-up Global

Saya menulis sebuah artikel untuk www.SharePoint.briefing.com berjudul"Menerapkan sistem pemberitahuan Pop-up Global.”  Fungsi ini dilaksanakan untuk perguruan untuk berkomunikasi sekolah ditutup karena salju dan sebagainya. 

Menggunakan daftar kustom, keluar dari kotak SharePoint web layanan dan beberapa jQuery untuk melakukan pekerjaan.

Di sini adalah teaser:

image

Membaca semuanya di sini: http://www.sharepointbriefing.com/features/article.php/3918471/Implement-a-Global-Pop-up-Notification-System.htm

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Mengambil kendali OK dan tombol Batal

Saya menulis Artikel ini beberapa waktu lalu, tapi sepertinya saya tidak link dari blog saya pada saat, jadi here goes:

image

Artikel ini menjelaskan bagaimana cara memaksa newform.aspx untuk mengarahkan ulang ke satu halaman ketika pengguna mengklik OK dan halaman yang berbeda ketika dia klik Batal.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin