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

Fix cepat: "$ Nama kandungan jenis 'Sumber:ReportServerResources … tidak boleh mengandungi … aksara khas”

Saya telah meluangkan masa membersihkan SharePoint a 2010 laman web dan salah satu daripada isu-isu yang berkaitan dengan pembersihan rasuah / salah dipasang Server Laporan Perkhidmatan SQL isu.  Isu itu timbul apabila salah satu daripada rakan-rakan saya cuba untuk menyelamatkan tapak sebagai templat dan kemudian membuat membuat laman baru berdasarkan template itu.  Operasi save bekerja denda, tetapi apabila dia cuba untuk mencipta laman baru, SharePoint dipaparkan mesej ralat berikut:

Ralat

Nama jenis kandungan '$ Sumber:ReportServerResources,DataSourceContentTypeName;'Tidak boleh mengandungi: \ / : * ? " # % < > { } | ~ & , dua tempoh berturut-turut (..), atau aksara khas seperti tab.

Berikut adalah cap skrin:

 

image

Saya melihat jenis kandungan di laman web ini dan mendapati ini:

image

Mereka jenis kandungan yang jelas yang tidak sihat.

Isu ini seolah-olah datang banyak pada internets dan ada nampaknya tidak menjadi konsensus tunggal tentang bagaimana untuk menyelesaikannya.  Saya mendapati meja berguna yang dipetakan yang buruk nama jenis kandungan untuk nama-nama yang baik jenis kandungan di sini: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Saya secara manual dikemaskini mereka thusly:

image

(BrightStarr nama itu adalah jelas pilihan, tetapi ia tidak boleh menyakiti Smile )

Ini membolehkan saya untuk membuat template baru dan tidak mematahkan apa-apa di laman web lain, termasuk beberapa barangan PerformancePoint Server bahawa kumpulan yang berbeza orang telah bekerja.  Saya kemudian dapat mewujudkan satu laman web baru template.  Kejayaan!

Saya tidak pasti ini adalah satu 100% penyelesaian, tetapi ia mendapat saya dan semua yang terlibat lalu ralat ini menjengkelkan.  Jika saya mendapati apa-apa yang baru, Saya akan menghantar kemas kini.  Gemuruh saya berpunca daripada fakta bahawa nama-nama ini tidak salah di tempat pertama dan dengan menetapkan nama paparan, Saya tidak menyentuh nama dalaman. 

</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

JQuery lagi lebih–Saiz semula Contoh Imej

Saya mewarisi sebahagian dari web vendor berusia pelanggan dan ia mempunyai masalah saiz imej.  Imej harus 60×50 tetapi atas sebab tertentu ganjil, vendor asal memaksa mereka ke dalam 42×42, supaya mereka melihat dihapuskan:

 

Imej Baik

Bad Image

Berikut adalah markup (agak dipermudahkan):

<jadual class = 'dilanjutkan pandangan'>
  <thead>
    <tr>
      <ke  width = '100′>3 Selasa</ke>
    </tr>
  </thead>

  <tbody>
    <tr class = 'ramalan'>
      <td width = '100′>
        <st>
          <li class = 'tinggi'>Tinggi: 72&anda;F</li>
          <li class = 'rendah'>Rendah: 44&anda;F</li>
          <li class = 'keadaan'>Sunny
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ width = '42’ height = '42’ alt =” />
          </li>
        </st>
      </td>
    </tr>

  </tbody>

</jadual>

Anda akan ambil perhatian bahawa walaupun laluan kepada imej itu sendiri menunjukkan dimensi yang betul (60×50) vendor asal memaksanya di 42×42.  Mengapa?  Gila.

Bagaimanapun, Saya mahu satu penyelesaian yang cepat dan mudah untuk isu ini dan saya beralih kepada jQuery.  Silap mata adalah untuk mencari semua yang sesuai <img> tag.  Saya tidak mahu bergelandangan dengan mana-mana tag img lain (di mana terdapat banyak).  Ini sedikit jQuery tidak menipu:

<skrip jenis = text/javascript"" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></skrip>

<skrip jenis = "text/javascript">
     $(dokumen).bersedia(fungsi () {

         $(' li.condition > img ').setiap(fungsi (indeks, item)
           
{
             $(item).css("lebar", "60"); 
             $(item).css("ketinggian", "50");
            });
     }); // beban dokumen
</skrip>

Itulah sedikit kod mendapati koleksi <li> tag yang kelas adalah "keadaan" dan <img> kanak-kanak.  Ia kemudian iterates melalui semua itu.  Bekerja seperti azimat.

Saya mungkin boleh menyelaraskan ia, tetapi saya tidak pernah menjadi jenis unix lelaki yang diselesaikan π kepada 18 digit ketepatan menggunakan sed dan awk dan saya bukan jenis yang jika lelaki jQuery sama ada Smile.

</akhir>

Langgan ke blog saya.

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

Menghuraikan XML dengan LINQ

Berikut adalah contoh yang cepat menggunakan LINQ untuk menghuraikan beberapa  XML dan mendapat sekurang-manis, sifat-sifat manis di dalamnya.

Berikut adalah XML yang ingin saya menghuraikan:

<?versi XML = "1.0" pengekodan = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <Nama PageLayout = "xyzzy">
      <Tabs>
        <Tab TabOrder = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Tab TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Tabs>
    </PageLayout>

    <Nama PageLayout = "xyzzy2">
      <Tabs>
        <Tab TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Tab TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Tab TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Saya mahu membina beberapa tab di runtime oleh menghuraikan di atas.  Tab saya bergantung kepada susun atur laman.  Jika nama saya layout Laman "xyzzy2" maka saya ingin mendapatkan Tab 100, 101 dan 103 (Tab yang di <Nama PageLayout = "xyzzy2">).

Inilah LINQ yang ia tidak:

VAR allTabs =
              dari p di
                  XElement.Parse(theXmlToParse).
                 
Unsur-unsur("PageLayouts").
                  Unsur-unsur("PageLayout")
              di mana (p.Attribute("nama").Value.Equals("xyzzy2"))
              dari m di p.Elements("Tab").Unsur-unsur("Tab")
              Pilih m;

          Results.Text = tali. Kosong;

          foreach (VAR aTab di allTabs)
          {
              Results.Text =
                  "Tab perintah: " + aTab.Attribute("TabOrder").Nilai + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Nilai + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Nilai + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Nilai + "r";
          }

Di atas, pembolehubah "theXmlToParse" adalah pembolehubah rentetan, tetapi anda boleh menggunakan beban() Kaedah aliran jika anda suka.

"Keputusan" adalah label pada satu borang web dan apabila melaksanakan kod ini, ia kelihatan seperti ini:

SNAGHTML11cd2e7c

Saya belum bekerja bagaimana untuk menyusun keputusan lagi, Jadi saya akan meninggalkan bahawa posting blog masa depan.

</akhir>

Langgan ke blog saya.

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

SharePoint 2010 KeywordQuery dan Pengguna Anonymous

Saya mendayakan capaian tanpa nama di laman web saya untuk menguji sebahagian web Cari yang saya telah membangunkan dan tidak terkejut besar, Ia tidak cukup bekerja.  Akses tanpa nama cukup banyak sentiasa merupakan satu cabaran bagi saya.

Dalam kes ini,, Jalankan carian awal bukanlah sebab-sebab tertentu.  Saya harus mengatakan bahawa ia adalah berlari tetapi ia adalah tidak memulangkan sebarang keputusan.  Saya menggunakan KeywordQuery dalam paparan yang awal.

Saya melakukan carian cepat dan posting blog ini oleh"sowmyancs"datang agak cepat: "SharePoint 2010 Carian: tidak menunjukkan apa-apa keputusan untuk pengguna tanpa nama?"  Bahawa entri blog menerangkan masalah dari satu daripada perspektif Cari kata kunci Peti tetapi tingkah laku itu adalah mirip saya – ia bekerja bagi pengguna yang disahkan dan bagi pengguna tanpa nama, tetapi pengguna tanpa mendapat hasil tidak. 

Saya mengikuti arahan dan bang!  Ia menyelesaikan masalah saya.  Saya tidak pasti apakah ini akan mempunyai kesan sampingan dan mereka boleh membuktikan untuk menjadi masalah, tetapi hasil jangka pendek adalah berguna.

Klik pada melalui blog:

image

</akhir>

Langgan ke blog saya.

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

SharePoint 2010 KeywordQuery dan HiddenConstraints Harta

Saya telah melakukan sedikit kerja dengan KeywordQuery objek di SharePoint 2010 dan membuat penggunaan HiddenConstraints harta.

Saya tidak menjumpai apa-apa maklumat serta-merta membantu dalam harta yang, jadi saya fikir saya cepat akan mencatat bagaimana saya telah menggunakan ia.

Setakat yang saya boleh memberitahu, ini adalah satu kekangan automatik ditambah ke permintaan supaya anda boleh menyusun taman di sana dan tidak bimbang mengenainya.  Oleh itu, ia hanya kata kunci lain (atau set kata kunci) dan pengubah bahawa anda boleh menaip untuk UI apabila anda melakukan carian kata kunci.  Berikut adalah contoh:

keywordQuery.HiddenConstraints = "skop:\"Industry" ";

Anda boleh menambah kekangan tambahan dengan pemisah ruang.

keywordQuery.HiddenConstraints = "skop:\"Industry" Pertahanan";

Di atas mengatakan dalam bahasa Inggeris, "Menjalankan query kata kunci mencari" pertahanan "dan seterusnya, menggunakan "Industri" skop.

Berikut adalah satu lagi cara untuk melihat ia:

image

Saya telah menggunakan ia untuk menyediakan skop automatik konteks yang bergantung pada bahagian web adat.  Apabila pengguna klik pada tab dan klik butang carian, tab menentukan skop carian tertentu.  Ia berfungsi dengan baik setakat ini.

</akhir>

Langgan ke blog saya.

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

Contoh: XSLT mewujudkan HTML href ini

Saya telah melakukan sedikit barangan XSL sejak kebelakangan ini dan fikir saya akan meletakkan bersama-sama sampel untuk rujukan masa depan saya dan yang boleh menjadi nilai kepada kita semua XSLT-ers membuat hidup di internets.

Pertimbangkan XML berikut:

<Kiraan FdcSearchTabsCollection = "2">
  <SearchTab Label = "industri" SortOrder = "00" Label = "Industri" SearchConstraints = "contenttype:Industri" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <SearchTab Label = "amalan-amalan" SortOrder = "01" Label = "Amalan" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

The XSL berikut coretan akan menjana senarai disusun daripada pelbagai tab hrefs:

<Pemacu:perlawanan template "FdcSearchTabsCollection =" xml:angkasa = "memelihara">
   
    <!– "Semua" tab –>
    <a href = "javascript:ViewTab('Semua')">Lihat semua</1>
   
    <!– Setiap tab individu –>
    <!– Melelar melalui semua Tabs dan memaparkan betul  pautan. –>
    <Pemacu:= Pilih untuk-setiap "SearchTab">
      <Pemacu:jenis select="@SortOrder"/>

      …
      <a href = "javascript:ViewTab(‘{@TabID}')"><Pemacu:nilai bagi select="@Label"/></1>
    </Pemacu:untuk setiap>

    <br /> 
   

   </Pemacu:template>

Berikut adalah apa yang ia kelihatan seperti di SharePoint:

SNAGHTML78aa2cb

 

 

</akhir>

Langgan ke blog saya.

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