Arkib Kategori: SharePoint Pembangunan

HTTP 406 Ralat apabila menggunakan sudut $http.get berbanding SharePoint rehat hujung Mata

Mengemas kini: MARC AD ndersson menunjukkan ini sebahagian besar maklumat: http://Blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-api-Released/. Sebab itulah banyak :).

Ia mungkin tajuk posting blog paling teruk pernah! Anyhoo.

Saya biasanya lakukan semua prototaip saya terhadap contoh O365. Saya mempunyai contoh diri saya supaya saya tidak perlu bimbang tentang mempengaruhi orang lain. Seperti yang diperuntukkan untuk – ingat apabila kita memanggil dibawa sekitar Mesin maya pada komputer riba kami dengan Lumut – SQL Server, IIS, penentu vs Hyper-V. VMWare? Anyhoo...

Saya telah membangunkan sebuah aplikasi yang menggunakan sudut dalam persekitaran yang tidak, antara lain, ini:

$http.get(serverUrl)
.kejayaan(fungsi(data, status, header, config) {

VAR getLinksResponse = data;

getLinksResponse.value.forEach(fungsi(theResult) {

// dan sebagainya dan jadi buih

Ini adalah bekerja saja dalam dua berbeza SharePoint dalam talian persekitaran. Walau bagaimanapun, Bilakah rakan sekerja saya dipindahkan ia ke contoh Cloudshare, dia sering terlibat dengan HTTP 406 kesilapan (yang adalah kali pertama saya pernah mendapat satu itu, Jadi... yay, saya rasa). Kami melakukan sedikit kajian dan menyedari bahawa pengepala "Menerima" adalah dari. SharePoint dalam talian adalah sempurna gembira dengan:

Menerima: Permohonan/json

Tetapi contoh cloudshare (yang dihidupkan SP prem, dihoskan dalam pelayan maya) mahukan klasik yang "odata = banyak cakap" ditambah dalam serta:

Menerima: Permohonan/json;odata = banyak cakap

Untuk menetapkan bahawa, kami menambah pengepala Justeru:

tatarajah VAR = {header: {
'Menerima': ' permohonan/json;odata = banyak cakap '
}
};

$http.get(serverUrl,config)
.kejayaan(fungsi(data, status, header, config) {

VAR getLinksResponse = data;

getLinksResponse.value.forEach(fungsi(theResult) {

// dan sebagainya dan jadi buih

Yang dapat menghilangkan dalam 406, tetapi ia juga mengubah format maklum balas. Itu lebih banyak... banyak cakap. (Haha!) Lebih banyak perubahan yang diperlukan dan inilah keputusan akhir:

tatarajah VAR = {header: {
'Menerima': ' permohonan/json;odata = banyak cakap '
}
};

$http.get(serverUrl,config)
.kejayaan(fungsi(data, status, header, config) {

VAR getLinksResponse = data;

getLinksResponse.d.results.forEach(fungsi(theResult) {

// dan sebagainya dan jadi buih

Ini hanya bertukar menjadi sebuah 30 minit masalah untuk kita, Jadi kita lucked Keluar. Mudah-mudahan orang mendapati ini berguna.

</akhir>

Kesedaran yang semakin meningkat / Menerima pakai JavaScript Rangka Kerja

Rakan saya, Javed Ansari (http://www.bigapplesharepoint.com/team?showExpertName=Javed%20Ansari&rsource=pgblog), menulis posting blog ringkasan pendek rangka kerja dia suka atau sekurang-kurangnya telah menggunakan dengan dengan SharePoint: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=53&rsource=PGBlog).

jQuery seolah-olah telah menjadi pemenang atas Padang, boleh dikatakan, selama kini, tetapi yang lain yang lebih baru dan imej pegun semacam bertarung ia, seperti sudut. (SPServices, sudah tentu, telah menjadi tali hayat selama bertahun-tahun dan akan terus menjadi jadi saya fikir).

Apa orang menggunakan? Mereka memberi tumpuan lebih rencam Microsoft (CSOM / JSOM) atau bergerak lebih ke arah sudut, Kalah mati, Ember, dan sebagainya.?

Saya mempunyai kecenderungan semakin meningkat ke arah rangka kerja ini bukan Microsoft. Saya fikir hal-hal MSFT adalah sukar untuk bekerja dengan, memerlukan hampir sebanyak mungkin keluk pembelajaran sebagai gaya-lama-pelayan dev.

Pos komen di sini atau lebih pada SharePoint epal besar Jika anda ingin berbincang mengenai (Big Apple akan mempunyai lebih banyak kemungkinan perbincangan yang baik).

</akhir>

Spinning SharePoint Pemasa Pekerjaan dari Laman Koleksi Konfigurasi

Rakan saya, Ashish Patel, menulis blog post menggambarkan seni bina kerja pemasa fleksibel yang yang mampu memberikan fleksibiliti yang bagus untuk menyokong tugas-tugas lama berjalan dan/atau laporan.  Dalam kata-katanya:

1. Menganalisis berdaftar keluar fail dan menghantar peringatan kepada individu jika jumlah hari (oleh kerana fail adalah menyemak) melebihi daripada had minimum yang tertentu

2. Mengalih keluar pautan daripada kandungan lain apabila kandungan tertentu yang dikeluarkan atau diarkibkan dari sistem

3. Pengguna mahu melihat semua isyarat yang dia dilanggan dalam jaringan yang terpisah semua dalam koleksi laman web

4. Menghantar satu peringatan kepada penulis untuk meneliti kandungan apabila masa kajian telah ditentukan dalam kandungan dan tarikh mendekati

Well, Senarai menyala...

– Sila lihat maklumat lanjut di: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=40#sthash.7cKuiwly.dpuf

Ada kalanya dalam masa lalu saya Bilakah mendapat sesuatu seperti ini akan menjadi sangat berguna.

</akhir>

Bagaimana: Konfigurasi Unit Ujian dan Liputan Ujian dengan QUnit.js dan Blanket.js Untuk Office 365 SharePoint App

Intro

Saya telah telah meneroka percubaan unit dan menguji liputan JavaScript kerana saya bekerja pada aplikasi SharePoint baru untuk SharePoint dalam talian di Pejabat 365 Suite.  Jalan-jalan penyelidikan jelas membawa saya untuk Qunit.js dan sejurus selepas itu, kepada Blanket.js.

QUnit Biar saya menubuhkan unit test dan Kumpulan mereka ke dalam modul.  Modul ini hanya cara mudah untuk menguruskan ujian berkaitan. (Saya tidak pasti saya menggunakannya seperti yang dimaksudkan, tetapi ia bekerja bagi saya setakat ini dengan sedikit set ujian saya setakat ditakrifkan).

Blanket.js mengintegrasikan dengan Qunit dan ia akan menunjukkan kepada saya sebenar baris JavaScript yang telah – dan apa yang lebih penting – tidak benar-benar dihukum semasa menjalankan ujian.  Inilah "perlindungan" – garisan yang dilaksanakan akan diliputi oleh ujian manakala yang lain adalah tidak.

Antara menyediakan kes-kes ujian yang baik dan melihat liputan, kita boleh mengurangkan risiko bahawa Kod kita telah tersembunyi kecacatan.  Baik times.

Qunit

Andaikan anda mempunyai Visual Studio anda projek menyediakan, Mulakan dengan memuat turun pakej JavaScript daripada http://qunitjs.com.  Tambah JavaScript dan CSS sepadan ke penyelesaian anda.  Lombong kelihatan seperti ini:

image

Rajah 1

Seperti yang anda lihat, Saya telah menggunakan 1.13.0 pada masa saya menulis ini blog post. Jangan lupa untuk men-download dan menambah fail CSS.

Yang keluar dari cara, langkah seterusnya adalah untuk mencipta beberapa jenis ujian memanfaatkan dan rujukan bit Qunit.  Saya ujian sekumpulan fungsi dalam fail skrip yang dipanggil "QuizUtil.js" supaya saya mencipta halaman HTML yang dipanggil "QuizUtil_test.html" seperti yang ditunjukkan:

image Rajah 2

Berikut adalah kod:

<!PADA DOCTYPE html>
<html xmlns= "http://www.W3.org/1999/XHTML">
<Ketua>
    <tajuk>Ujian QuizUtil dengan Qunit</tajuk>
    <pautan rel= "stylesheet" href=".. /CSS/qunit-1.13.0.CSS" />
    <skrip Jenis= text/javascript"" JPP="QuizUtil.js" Perlindungan data></skrip>
    <skrip jenis ="text/javascript" src ="qunit-1.13.0.js"></skrip>
    <skrip jenis ="text/javascript" src ="blanket.min.js"></skrip>

    <skrip>
        Modul("getIDFromLookup");
        ujian("QuizUtil getIDFromLookupField", fungsi () {
            VAR goodValue = "1;#Paul Galvin";

            sama(getIDFromLookupField(goodValue) + 1, 2), "ID [" + goodValue + "] + 1 sepatutnya 2";
            sama(getIDFromLookupField(undefined), undefined, "Hujah input undefined perlu kembali keputusan undefined.");
            sama(getIDFromLookupField(""), undefined, "Hujah kosong input perlu kembali untuk nilai undefined.");
            sama(getIDFromLookupField("gobbledigood3-thq;dkvn ada;skfja sdjfbvubvqrubqer0873407t534piutheqw;pada tahun"), undefined,"Harus sentiasa kembalikan sebuah keputusan boleh Tukar ke Integer");
            sama(getIDFromLookupField("2;#orang lain"), "2", "Semakan [2;#orang lain].");
            sama(getIDFromLookupField("9834524;#nilai panjang"), "9834524", "Ujian nilai besar.");
            notEqual(getIDFromLookupField("5;#sesiapa sahaja", 6), 6, "Ujian notEqual yang (5 adalah tidak sama dengan 6 bagi sampel: [5;#sesiapa sahaja]");

        });

        Modul("htmlEscape");
        ujian("QuizUtil htmlEscape()", fungsi () {
            sama(htmlEscape("<"), "&lt;", "Kurang dari pengendali melarikan diri ('<')");
            sama(htmlEscape("<Bhg. kelas =  "someclass">Sesetengah teks</div>"), "&lt;kelas Bhg. =&quot;someclass&quot;&gt;Sesetengah teks&lt;/div&gt;", "Rentetan ujian lebih kompleks.");
        });

        Modul("getDateAsCaml");
        ujian("QuizUtil getDateAsCaml()", fungsi () {
            sama(getDateAsCaml(baru Tarikh("12/31/2013")), "2013-12-31T:00:00:00", "Ujian tarikh keras dikodkan: [12/31/2013]");
            sama(getDateAsCaml(baru Tarikh("01/05/2014")), "2014-01-05T:00:00:00", "Ujian tarikh keras dikodkan: [01/05/2014]");
            sama(getDateAsCaml(baru Tarikh("01/31/2014")), "2014-01-31T:00:00:00", "Ujian tarikh keras dikodkan: [01/31/2014]");
            sama(getTodayAsCaml(), getDateAsCaml(baru Tarikh()), "getTodayAsCaml() hendaklah sama dengan getDateAsCaml(Tarikh baru())");
            sama(getDateAsCaml("nilai karut"), undefined, "Cuba untuk mendapatkan tarikh nilai karut.");
            sama(getDateAsCaml(undefined), undefined, "Cuba untuk mendapatkan tarikh yang [undefined] Tarikh.");
        });

        Modul("getParameterByName");
        ujian("QuizUtil getParameterByName (dari rentetan pertanyaan)", fungsi () {
            sama(getParameterByName(undefined), undefined, "Cuba untuk mendapatkan undefined parameter perlu kembali undefined.");
            sama(getParameterByName("tidak wujud"), undefined, "Cuba untuk mendapatkan nilai parameter apabila kita tahu parameter tidak wujud.");

        });

        Modul("Cookies");
        ujian("QuizUtil pelbagai fungsi cookie.", fungsi () {
            sama(setCookie("ujian", "1", -1), getCookieValue("ujian"), "Dapatkan cookie saya menetapkan perlu bekerja.");
            sama(setCookie("anycookie", "1", -1), benar, "Tatacara memasak sah perlu kembali 'benar'.");
            sama(setCookie("kuih gila nama !@#$%"%\^&*(()?/><.,", "1", -1), benar, "Menetapkan nama kuih yang buruk perlu kembali 'palsu'.");
            sama(setCookie(undefined, "1", -1), undefined, "Lulus undefined dengan nama kuih.");
            sama(getCookieValue("tidak wujud"), "", "Cookie tidak wujud ujian.");
        });

    </skrip>
</Ketua>
<badan>
    <div id= "qunit"></div>
    <div id= "qunit-perlawanan"></div>

</badan>
</html>

Terdapat beberapa perkara yang berlaku di sini:

  1. Rujukan kod (QuizUtil.js)
  2. Rujukan Qunity.js
  3. Menentukan beberapa modul (getIDFromLookup, Biskut, dan lain-lain)
  4. Meletakkan satu <div> ID yang merupakan "qunit".

Kemudian, Saya hanya tarik ke Laman ini dan anda mendapat sesuatu seperti ini:

image

Rajah 3

Jika anda melihat di bahagian atas, anda mempunyai beberapa pilihan, dua di antaranya yang menarik:

  • Sembunyi lulus ujian: Cukup jelas.  Boleh membantu mata anda hanya melihat bidang masalah dan tidak banyak kekacauan.
  • Modul: (jatuh bawah): Ini akan menapis ujian ke ujian yang hendak sekumpulan hanya orang-orang.

Bagi ujian diri – beberapa komen:

  • Ia pergi tanpa mengatakan bahawa anda perlu untuk menulis kod anda supaya ia adalah testable di tempat pertama.  Menggunakan alat yang boleh membantu menguatkuasakan disiplin itu. Sebagai contoh, Saya mempunyai satu majlis yang dipanggil "getTodayAsCaml()".  Ini bukan sangat testable kerana membawa hujah tiada input dan untuk menguji untuk kesaksamaan, kita perlu sentiasa Kemaskini Terakhir kod ujian untuk menunjukkan tarikh semasa.  Saya refactored dengan menambah data input parameter lulus tarikh semasa apabila saya mahu tarikh hari ini dalam CAML format.
  • Rangka Qunit dokumen ujian sendiri dan nampaknya cukup mantap.  Ia boleh melakukan perkara-perkara yang mudah seperti ujian untuk kesaksamaan dan juga mempunyai sokongan untuk panggilan ajax gaya (kedua-dua "real" atau mengejek menggunakan mocker kegemaran anda).
  • Juga akan melalui proses yang memaksa anda berfikir melalui kes-kes canggih – apa yang berlaku dengan "undefined" atau kosong dihantar ke satu fungsi.  Ia menjadikan ia mati mudah untuk menguji senario ini keluar.  Bagus.

Perlindungan dengan Blanket.js

Blanket.js melengkapi Qunit dengan tracking sebenar baris kod yang melaksanakan semasa menjalankan ujian.  Ia mengintegrasikan hak ke Qunit begitu walaupun ia adalah sebuah aplikasi yang keseluruhannya berasingan, Ia memainkan baik – ia benar-benar kelihatan seperti itu adalah satu aplikasi yang lancar.

Inilah blanket.js dalam tindakan:

image Rajah 4

image

Rajah 5

(Anda sebenarnya perlu klik pada checkbox "Dayakan perlindungan" di bahagian atas [lihat Rajah 3] bagi membolehkan ini.)

Garisan yang diserlahkan dalam Rajah 5 telah dilaksanakan oleh mana-mana ujian saya, oleh itu, saya perlu memikirkan ujian yang menyebabkan mereka untuk melaksanakan jika saya ingin perlindungan penuh.

Mendapat blanket.js dengan langkah-langkah berikut:

  1. Muat turun daripada http://blanketjs.org/.
  2. Menambah kepada projek anda
  3. Kemaskini Terakhir Laman abah-abah ujian anda (QuizUtil_test.html dalam kes saya) seperti berikut:
    1. Rujukan kod
    2. Menghias anda <skrip> rujukan seperti ini:
    <skrip Jenis= text/javascript"" JPP="QuizUtil.js" Perlindungan data></skrip>

Blanket.js menjemput atribut "data-cover" dan melakukan sihir dengan.  Ia cangkuk ke Qunit, mengemaskini UI untuk menambah opsyen "Dayakan perlindungan" dan voila!

Ringkasan (TL; DR)

Gunakan Qunit untuk menulis kes-kes ujian anda.

  • Muat turun
  • Menambah kepada projek anda
  • Menulis halaman ujian abah-abah
  • Mencipta ujian
    • ReFactor di antara kod anda akan testable
    • Menjadi kreatif!  Fikirkan gila, mustahil senario dan menguji mereka juga.

Menggunakan blanket.js untuk memastikan perlindungan

  • Pastikan Qunit bekerja
  • Muat turun blanket.js dan menambahnya ke dalam projek
  • Tambah ke Laman abah-abah ujian anda:
    • Menambah rujukan kepada blanket.js
    • Tambah satu atribut "data-cover" untuk anda <skrip> Tag
  • Menjalankan ujian Qunit.

Saya tidak pernah melakukan apa-apa sebelum ini dan mempunyai beberapa barangan rudimentary bekerja dalam beberapa jam. 

Ujian senang!

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetList dan "Nilai tidak boleh adalah tidak sah”

Saya dapati hari ini bahawa GetList yang() kaedah dalam lists.asmx Perkhidmatan web perlu dihubungi sangat hati-hati atau tidak terdedah untuk melontarkan satu misteri "Nilai tidak boleh batal" pengecualian (dan itu menganggap anda boleh mendapatkan masa lalu mesej ralat lebih teruk generik, "Pengecualian dari jenis ' Microsoft.SharePoint.SoapServer.SoapServerException’ telah dibuang. ")  Khususnya, Saya mendapati bahawa anda tidak memberikan apa-apa jenis awalan kaedah GetList.  Cebisan jQuery yang berikut menggambarkan titik:

image

Jika anda berbuat demikian, Perkhidmatan web bertindak-balas dengan "Nilai tidak boleh batal" seperti ini pemain biola-disediakan transkrip HTTP:

<?versi XML = "1.0" pengekodan = "utf-8"?>
  <sabun:Sampul surat
     xmlns:sabun ="
http://schemas.xmlsoap.org / sabun / sampul surat /"    
     xmlns:xSi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd ="
http://www.W3.org/2001/XMLSchema">

  <sabun:Badan>
    <sabun:Kesalahan>
      <faultcode>sabun:Pelayan</faultcode>
      <faultstring>
        Pengecualian dari jenis ' Microsoft.SharePoint.SoapServer.SoapServerException’ dibuang.
      </faultstring>
      <terperinci>
        <errorstring xmlns ="
http://schemas.microsoft.com / SharePoint / sabun /">
Nilai tidak boleh batal.
        </errorstring>
      </terperinci>
    </sabun:Kesalahan>
  </sabun:Badan>
</sabun:Sampul surat>

Kursus, anda mungkin tidak akan menambah awalan "s0" itu sendiri, tetapi beberapa alat yang cenderung untuk melakukannya (seperti gerhana).

Inilah semua lebih mengelirukan / mengecewakan kerana kaedah lain bertolak awalan.  Sebagai contoh, yang GetListCollection kaedah tidak kisah jika ia adalah telah bermula, Walaupun dengan awalan karut seperti "xyzzy":

image

Ini "nilai tidak boleh batal" kelihatan agak biasa dengan begitu mudah-mudahan ini akan membantu seseorang di hadapan lists.asmx.

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Henti-henti Penyarangan <div> Tag dan jQuery

Ini seolah-olah seperti apa-apa topik oddball, Saya tidak pasti ia adalah blog benar-benar bernilai kira-kira, tetapi itu tidak pernah berhenti saya sebelum, jadi di sini kita pergi Smile

Saya bekerja di sebuah projek di mana saya menarik beberapa data dari carian, pembungkusan ia ke dalam mesej XML dan kemudian bahawa XML akhirnya berubah menjadi HTML melalui XSLT.  Ada banyak jQuery terlibat, satu bit yang melaksanakan beberapa fungsi tabbing.  Apabila anda klik pada tab (benar-benar, 1 <div>), jQuery menyembah. menyembunyikan() dan. menunjukkan() mengenai pelbagai divs (beban halaman awal memuat turun semua kandungan supaya tidak ada postbacks dalam kes ini).

Sekumpulan jam yang lalu, logik beralih tab mula berkelakuan tidak menentu dan ia tidak akan menunjukkan salah satu tab saya.  Saya akhirnya dikesan ia turun kepada fakta bahawa internet explorer (sekurang-kurangnya) berpendapat bahawa <div> tags bersarang jauh, jauh lebih mendalam daripada toolbar pemaju intended.The akan menunjukkan:

-<id div = "Tab1Content">
  -<div>
    -<div>
      -<id div = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-Akhirnya menunjukkan ia telah ditutup sepanjang jalan ke sini!

Jadi, jika saya melakukan $("# Tab1Content").menyembunyikan(), Saya juga akan menyembunyikan Tab2 dan saya tidak dapat menunjukkan Tab2 jika saya tidak juga menunjukkan Tab1.  Saya disalin dan ditampal kod ke dalam studio visual dan ia menunjukkan semua lapisan div terpulang baik, sama seperti mereka sepatutnya melakukan, kelihatan seperti ini:

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

Aku pukul kepala saya ke dinding untuk beberapa ketika dan melihat bahawa dalam HTML kod sebenar telah menjana banyak kosong <div> tags, seperti:

<badan>

  <id div = "Tab1Content">

    <div id = "ROW1" />
    <div id = "ROW2" />

  </div>

  <id div = "Tab2Content">

    <div id = "ROW1" />
    <div id = "ROW2" />

  </div>

</badan>

(Di atas adalah waaaaaaaaaaaay terlalu dipermudahkan.  Tag div kosong adalah betul-betul sah. Sebahagian daripada saya <div> tags penuh dengan kandungan, tetapi banyak lagi tidak.  Saya datang untuk menyedari bahawa saya <Pemacu:untuk setiap> arahan telah mengeluarkan tag div pendek bentuk apabila Pemacu:untuk setiap tidak 'mencari apa-apa data.  Aku memaksa satu komen HTML ke dalam output, seperti yang ditunjukkan:

image

 

Selepas saya lakukan, semua div itu yang berbaris dengan baik dan menukar tab saya mula bekerja.

Seperti biasa, Saya harap ini membantu seseorang dalam secubit.

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Satu Punca untuk "pencipta daripada kesalahan ini tidak menyatakan Sebab.”

Saya telah melakukan banyak kerja dengan carian SharePoint akhir-akhir ini dan khususnya kelas KeywordQuery, sifat-sifat dan kaedah.

Jika anda mahu hasil yang ditetapkan untuk kembali keputusan di atas dan di luar suspek biasa (lihat di sini), anda menambah koleksi SelectedProperties yang, seperti dalam:

myKeywordQuery.SelectProperties.Add("xyzzy");

Terima kasih banyak dan tip topi untuk Corey Roth dan blog post ini sangat membantu (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

Dalam kes saya,, "Xyzzy" sebenarnya bukan harta diuruskan.  Apabila saya menambah kepada SelectedProperties anyway, SharePoint melemparkan salah satu pengecualian kegemaran saya pernah runtime:

"Pencipta daripada kesalahan ini tidak menyatakan Sebab a."

Saya terutamanya suka modal "R" dalam Sebab.  Ini bunyi kepada saya seperti yang setara. BERSIH daripada "Saya tidak mempunyai mulut, dan saya mesti menjerit."

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Rujukan berguna: Keputusan lalai dari KeywordQuery Search

Apabila anda meminta supaya Melaksanakan() kaedah di KeywordQuery a, anda boleh membuat ResultTable berdasarkan ResultType.RelevantResults.  Ini coretan kod menggambarkan apa yang saya maksudkan:

ResultsTableCollection ResultTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Jadual yang terhasil akan mempunyai ruang maklumat berikut: 

WorkId
Pangkat
Title
Pengarang
Saiz
Jalan
Penerangan
Tulis
SITENAME
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
Contentclass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Saya berasal senarai ini daripada SharePoint 2010 persekitaran, perusahaan edisi.  Semoga ia akan menjadi berguna kepada seseorang pada masa akan datang.

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Satu sebab untuk: "Gagal mengekstrak fail teksi dalam larutan”

Walaupun bekerja di sebuah studio visual projek sebahagian web hari ini, Saya kecil semula org-of beberapa fail untuk dimasukkan ke dalam folder _layouts sebagai sebahagian daripada proses penempatan. Khususnya, Saya menamakan semula fail. Js daripada "TypeAhead.js" kepada "TypeAhead(lama).js "  Saya bercadang untuk menghapuskan secepat penggantinya "TypeAhead.js" membuktikan betul.  Ia kelihatan seperti ini:

image

Ini serta-merta disebabkan masalah dengan studio visual apabila saya cuba untuk menggunakan projek:

Ralat berlaku semasa langkah penggunaan 'Tambah solusi': Gagal untuk mengeluarkan fail teksi dalam penyelesaian.

Ia ternyata bahawa anda tidak perlu meletakkan kurungan dalam nama fail.  Saya dibuang parens dan menyelesaikan masalah.

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin