უსასრულოდ Nesting <div> Tags და jQuery

ეს ჩანს, ასეთი oddball თემას, მე არ ვარ დარწმუნებული, რომ ეს ნამდვილად ღირს ბლოგინგის შესახებ, მაგრამ ეს არ შეუწყვეტია მე წინაშე, ასე რომ აქ ჩვენ Smile

მე შემუშავების პროექტზე, სადაც მე უბიძგებენ გარკვეული მონაცემების ძებნის, შეფუთვის იგი დაყოფილია XML გაგზავნა და შემდეგ რომ XML საბოლოოდ გადაკეთდა HTML მეშვეობით XSLT.  აქ არის ბევრი jQuery ჩართული, ერთი ცოტა რომელიც ახორციელებს რამდენიმე tabbing ფუნქცია.  როდესაც თქვენ დააჭირეთ tab (ნამდვილად, a <div>), jQuery აღვიძებს. დამალვა() და. შოუ() სხვადასხვა divs (საწყის გვერდზე დატვირთვის იწერს ყველა შინაარსი ასე რომ არ არსებობს postbacks ამ შემთხვევაში).

რამოდენიმე საათის წინ, tab გადართვის ლოგიკა დაიწყო მოიქცევა erratically და ეს არ აჩვენებს ერთი ჩემი ჩანართი.  მე საბოლოოდ დააფიქსირა, მას იმ ფაქტს, რომ ინტერნეტ explorer (სულ მცირე) ეგონა, რომ <div> tags წყობილი შორს, რამდენადაც უფრო ღრმა, ვიდრე intended.The დეველოპერი პანელი იმას აჩვენებენ:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-საბოლოოდ აჩვენებს დაიხურა ყველა გზა ქვემოთ აქ!

ასე რომ,, თუ წავიდოდი $("# Tab1Content").დამალვა(), მინდა ასევე მალავს Tab2 და ვერც კი ნახოთ Tab2 თუ არ ასევე აჩვენებს Tab1.  მე გადაწერა და გაკრული კოდი დაყოფილია ვიზუალური სტუდია და ეს აჩვენა ყველა div-ს უგულებელყოფა up ლამაზად, ისევე, როგორც ისინი უნდა აკეთებს, ეძებს როგორც ამ:

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

მე სცემეს ჩემი უფროსი წინააღმდეგ კედელზე ხნით და შენიშნა, რომ ფაქტობრივი HTML კოდი იყო მომტანი ბევრი ცარიელი <div> tags, მოსწონს:

<სხეულის>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</სხეულის>

(აღნიშნული waaaaaaaaaaaay oversimplified.  ცარიელი div tags აბსოლუტურად ძალაშია. ზოგიერთი ჩემი <div> tags იყო სავსე შინაარსი, მაგრამ კიდევ ბევრი რამ არ იყო.  ჩამოვედი რეალიზაციის, რომ ჩემი <XSL:for-თითოეული> დირექტივა ასხივებენ მოკლე ფორმა div tags როდესაც XSL:for-თითოეული არ "აღმოაჩინა მონაცემები.  მე იძულებული HTML კომენტარის შევიდა გამომავალი, როგორც ნაჩვენებია:

image

 

მას შემდეგ, რაც გავაკეთე, რომ, ყველა div ის გაფორმებულია ლამაზად და ჩემი tab ჩართვის მუშაობა დაიწყო.

როგორც ყოველთვის, ვიმედოვნებ, რომ ეს ეხმარება ვინმე pinch.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

გადავწყვიტოთ: "ინფორმაციის ტიპი სახელი '$ რესურსების:ReportServerResources … არ უნდა შეიცავდეს … სპეციალური სიმბოლოების”

მე ხარჯავს გარკვეული დროის გაწმენდის SharePoint 2010 საიტი და ერთი წმენდა საკითხები ეხება კორუფციულ / არასწორად დამონტაჟებული SQL Server Report მომსახურება საკითხი.  საკითხი გაჩნდა, როდესაც ერთი ჩემი კოლეგების შეეცადა გადარჩენა საიტზე როგორც template და შემდეგ შევქმნათ შექმნა ახალი საიტი დაყრდნობით თარგი.  Save ოპერაცია მუშაობდა ჯარიმა, მაგრამ როდესაც იგი ცდილობდა, რომ შეიქმნას ახალი საიტი, SharePoint ნაჩვენები შემდეგ შეცდომა:

შეცდომა

შინაარსი ტიპის სახელი '$ რესურსების:ReportServerResources,DataSourceContentTypeName;"არ შეიძლება შეიცავდეს: \ / : * ? " # % < > { } | ~ & , ზედიზედ პერიოდები (..), ან სპეციალური სიმბოლოები, როგორიცაა tab.

აქ ეკრანზე ქუდი:

 

image

მე მქონდა შევხედოთ შინაარსი ტიპის საიტი და ეს:

image

იმ შინაარსის სახის აშკარად არაჯანსაღი.

ეს საკითხი როგორც ჩანს ამუშავება ბევრი Internets და იქ არ ჩანს, ერთ კონსენსუსი როგორ უნდა გადაწყდეს იგი.  მივხვდი, მოსახერხებელი მაგიდასთან რომ mapped ცუდი შინაარსის ტიპის სახელები კარგი შინაარსის ტიპის სახელები აქ: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  მე ხელით განახლება მათ thusly:

image

(BrightStarr სახელზე აშკარად სურვილისამებრ, მაგრამ მას არ შეუძლია ზიანი მიაყენა Smile )

ეს საშუალება მომცა შექმნა ახალი შაბლონი და არ დაარღვიოს არაფერი სხვა საიტები, მათ შორის PerformancePoint Server პერსონალი, რომ სრულიად განსხვავებული ადამიანების ჯგუფს მუშაობდნენ.  მე მაშინ შეუძლია შექმნას ახალი საიტი თარგი.  წარმატება!

არ ვარ დარწმუნებული, რომ ეს არის 100% გადაწყვეტა, მაგრამ მას ჩემთვის და ყველას ჩართული წარსულში შემაშფოთებელი შეცდომა.  თუ მე ახალი არაფერი, მე პოსტი განახლება.  ჩემი ნერვული იყვნენ იმისა, რომ ეს სახელები არ უნდა იყოს არასწორი პირველი ადგილით და აფიქსირებს ჩვენება სახელი, მე არ ეხება შიდა სახელი. 

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ერთი მიზეზი, "შემოქმედი ამ მიზეზით არ დააკონკრეტა მიზეზი.”

მე აკეთებდა ბევრი მუშაობა SharePoint ძიება ბოლო დროს და კონკრეტულად KeywordQuery კლასი, თვისებები და მეთოდები.

თუ გსურთ შედეგი ნაკრები დაბრუნების შედეგების ზემოთ და მის ფარგლებს გარეთ ეჭვმიტანილები (აქ), თქვენ დაამატოთ ეს SelectedProperties კრებული, , როგორც in:

myKeywordQuery.SelectProperties.Add("xyzzy");

დიდი მადლობა და წვერი ქუდი კორი Roth და ამ დიდად გამოსადეგი დღიურში (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

ჩემს შემთხვევაში, "Xyzzy" არ არის რეალურად მოახერხა ქონება.  როცა დასძინა, რომ ეს SelectedProperties მაინც, SharePoint ესროლა ერთი ჩემი საყვარელი ოდესმე runtime გამონაკლისი:

"შემოქმედი ამ ბრალი არ დააკონკრეტა მიზეზი."

განსაკუთრებით მინდა კაპიტალის "რ" მიზეზი.  ეს ჟღერს ჩემთვის მოსწონს. NET ეკვივალენტს "მე არ მაქვს პირში, და უნდა ყვირილი."

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

გართობის Reference: Default შედეგები KeywordQuery ძებნა

როდესაც თქვენ იძახებთ სიკვდილი() მეთოდის KeywordQuery, შეგიძლიათ შექმნათ ResultTable საფუძველზე ResultType.RelevantResults.  ეს კოდი snippet ასახავს რას ვგულისხმობ:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

შედეგად მაგიდაზე ექნება შემდეგი გრაფა ინფორმაცია: 

WorkId
რანგის
სათაური
ავტორი
ზომა
გზა
აღწერა
დაწერეთ
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
Contentclass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

მე მიღებული ამ სიის SharePoint 2010 გარემოს, საწარმოს გამოცემა.  იმედია ეს იქნება მოსახერხებელი ვინმე მომავალში.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ერთი მიზეზი: "ვერ განხორციელდა კაბინა ფაილი გამოსავალი”

მუშაობისას ვიზუალური სტუდიის ვებ ნაწილი პროექტი დღეს, მე არასრულწლოვანი ხელახალი ორგ ზოგიერთი ფაილი ამოქმედებული _layouts საქაღალდის ნაწილი განლაგების პროცესი. კერძოდ, I ეწოდა. Js ფაილი "TypeAhead.js", რათა "TypeAhead(ძველი).სს "  ვაპირებ ამოიღონ მას როგორც კი მისი მემკვიდრე "TypeAhead.js" კიდევ ერთხელ ადასტურებს, სწორი.  ისე ჩანდა, რომ ეს:

image

ეს მაშინვე გამოიწვია პრობლემა ვიზუალური სტუდიაში, როდესაც მე შევეცადე განათავსოს პროექტის:

Error occurred in deployment step ‘Add Solution’: ვერ განხორციელდა კაბინა ფაილი გადაწყვეტა.

გამოდის, რომ თქვენ არ უნდა დააყენოს ფრჩხილებში ფაილის სახელები.  მე ამოღებულ parens და რომ გადაჭრა პრობლემა.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ჯერ jQuery–ზომის შეცვლა გამოსახულების მაგალითი

მე მემკვიდრეობით ვებ ნაწილი კლიენტების წლის გამყიდველი და მას აქვს სურათის ზომის პრობლემა.  ფოტოებს თან უნდა 60×50 მაგრამ გარკვეული უცნაური მიზეზი, ორიგინალური გამყიდველი აიძულა მათ 42×42, ასე რომ ისინი squashed:

 

კარგი გამოსახულება

ცუდი გამოსახულება

აი markup (გარკვეულწილად გამარტივდა):

<მაგიდა კლასის = 'გახანგრძლივებული მსოფლმხედველობის ">
  <thead>
    <tr>
      <ე  ტელეკომპანია '100′>3 სამშაბათი</ე>
    </tr>
  </thead>

  <tbody>
    <tr კლასის = 'პროგნოზს ">
      <td width = '100′>
        <ul>
          <li class = 'მაღალი'>მაღალი: 72&deg;F</li>
          <li class = "დაბალი">დაბალი: 44&deg;F</li>
          <li class = "მდგომარეობაშია">მზიანი
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ ტელეკომპანია '42’ სიმაღლე = '42’ alt =” />
          </li>
        </ul>
      </td>
    </tr>

  </tbody>

</მაგიდა>

თქვენ აღვნიშნო, რომ მიუხედავად იმისა, გზა იმიჯი თავად გვიჩვენებს შესაბამისი განზომილების (60×50) ორიგინალური გამყიდველი აიძულა იგი 42×42.  რატომ?  Crazy.

ყოველ შემთხვევაში, მინდოდა ეს სწრაფია და ადვილი გამოსავალი ამ საკითხს და მე აღმოჩნდა jQuery.  შეასრულა იყო იქნებიან ყველა შესაბამისი <img> tags.  მე არ მინდა, რომ Muck შესახებ ნებისმიერ სხვა img tags (რომელიც არსებობს მრავალი).  ეს ცოტა jQuery გააკეთა შეასრულა:

<script type="text/javascript" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></დამწერლობის>

<script type="text/javascript">
     $(დოკუმენტი).მზად(ფუნქცია () {

         $(‘li.condition > img ').ყოველ(ფუნქცია (ინდექსი, პუნქტის)
           
{
             $(პუნქტის).css("width", "60"); 
             $(პუნქტის).css("height", "50");
            });
     }); // on დოკუმენტი დატვირთვა
</დამწერლობის>

ცოტა კოდი პოულობს კრებული <li> tags რომლის კლასი არის "მდგომარეობაში" და <img> ბავშვები.  ეს მაშინ iterates მეშვეობით ყველა რომ.  მუშაობდა როგორც ხიბლი.

მე შეიძლება ალბათ გამარტივებაში ეს, მაგრამ მე არასდროს ყოფილა ასეთი UNIX ბიჭი რომ გადაწყდეს π to 18 ციფრები სიზუსტით გამოყენებით SED და awk და მე არ ვარ ასეთი სახის თუ jQuery ბიჭი ან Smile.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

დამუშავების XML ერთად LINQ

აქ არის სწრაფი მაგალითად გამოყენებით LINQ გარჩევის ზოგიერთი  XML და მიიღოთ sweet, sweet ატრიბუტები მასში.

აი XML მინდა გარჩევის:

<?xml version="1.0" encoding="utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

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

    <PageLayout name="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>

მინდა შექმნა გარკვეული ჩანართების at runtime მიერ პარსინგის ზემოთ.  ჩემი ჩანართები დამოკიდებული გვერდზე განლაგებას.  თუ ჩემს გვერდზე განლაგება სახელზე არის "xyzzy2" მაშინ მე მინდა ჩანართების 100, 101 და 103 (ჩანართების <PageLayout სახელი = "xyzzy2">).

აი LINQ რომ აკეთებს:

var allTabs =
              ეხლა P ში
                  XElement.Parse(theXmlToParse).
                 
ელემენტები("PageLayouts").
                  ელემენტები("PageLayout")
              სადაც (p.Attribute("name").Value.Equals("xyzzy2"))
              ეხლა მ p.Elements("Tabs").ელემენტები("Tab")
              შერჩევა მ;

          Results.Text = string.Empty;

          foreach (var aTab in allTabs)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").ფასი + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").ფასი + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").ფასი + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").ფასი + "\r";
          }

აღნიშნულ, ცვლადი "theXmlToParse" არის სიმებიანი ცვლადი, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ დატვირთვა() მეთოდის ნაკადი თუ გნებავთ.

"შედეგები" არის ლეიბლთან ვებგვერდი ფორმა და როდესაც ეს კოდი გაუშვებს, როგორც ჩანს, ამ:

SNAGHTML11cd2e7c

მე არ მუშაობდა, თუ როგორ დასალაგებლად შედეგები ჯერ კიდევ, ასე რომ დავტოვებთ, რომ მომავალში დღიურში.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery და ანონიმური

მე საშუალება მისცა ანონიმური ხელმისაწვდომობა ჩემი საიტი შესამოწმებლად out ძებნის ვებგვერდი ნაწილი მე ვითარდება და არა რომელიმე დიდი სიურპრიზი, ეს არ საკმაოდ მუშაობს.  ანონიმური ხელმისაწვდომობის საკმაოდ ბევრი ყოველთვის გამოწვევაა ჩემთვის.

ამ შემთხვევაში, საწყის მოძებნილი არ ხორციელდება რაიმე მიზეზით.  მინდა გითხრათ, რომ ეს იყო გაშვებული მაგრამ არ დაბრუნების არანაირი შედეგი.  მე გამოყენებით KeywordQuery, რომ თავდაპირველი ჩვენება.

მე სწრაფი ძებნის და ამ დღიურში პოსტის "sowmyancs"მოვიდა საკმაოდ სწრაფად: "SharePoint 2010 ძიება: არ აჩვენებს რაიმე შედეგები ანონიმური წევრი?"  რომ წაკითხვა შესვლის აღწერს პრობლემა იმ ყუთში სიტყვით ძებნის პერსპექტივა, მაგრამ საქციელი იყო მსგავსი აფეთქდა - ის მუშაობდა დამოწმებული წევრებს და ანონიმური წევრი, მაგრამ ანონიმური წევრი მიიღო უშედეგოდ. 

მე მოჰყვება ინსტრუქციები და bang!  ეს გადაწყდება ჩემი საკითხი.  მე არ ვარ დარწმუნებული, თუ რა გვერდითი მოვლენები ამ ექნება და ისინი შეიძლება აღმოჩნდეს პრობლემა, მაგრამ მოკლევადიანი შედეგი არის სასარგებლო.

დაწკაპეთ მეშვეობით წაკითხვა:

image

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery და HiddenConstraints ქონება

მე უკვე აკეთებს ცოტა მუშაობა KeywordQuery ობიექტის SharePoint 2010 და გამოყენება HiddenConstraints ქონების.

მე ვერ აღმოაჩინა დაუყოვნებლივ სასარგებლო ინფორმაციას, რომ საკუთრების, ასე მეგონა, მე მინდა სწრაფად jot ქვემოთ, როგორ მე გამოყენება.

რამდენადაც მე შემიძლია გითხრათ, ეს არის ავტომატური შეზღუდვა დასძინა, რომ შეკითხვის ასე რომ თქვენ შეგიძლიათ ერთგვარი პარკი იქ და არ აღელვებს მას.  იმდენი, ეს არის კიდევ ერთი სიტყვით (ან მითითებული სიტყვა) და მოდიფიკატორები, რომ თქვენ შეგიძლიათ აკრიფოთ რომ UI, როდესაც თქვენ სიტყვით ძიება.  Here’s an example:

keywordQuery.HiddenConstraints = "ფარგლები:\"მრეწველობა " ";

შეგიძლიათ დამატებითი შეზღუდვების სივრცეში delimiter.

keywordQuery.HiddenConstraints = "ფარგლები:\"მრეწველობა " თავდაცვის ";

აღნიშნული ამბობს, ინგლისური, "აწარმოებს სიტყვით შეკითხვის ეძებს" დაცვა "და უფრო მეტიც, გამოიყენოთ "მრეწველობა" ფარგლები.

აქ არის კიდევ ერთი გზა ეძებს ის:

image

I’ve been using it to provide a context-dependent automatic scope on a custom web part.  When the user clicks on a tab and clicks a search button, the tab dictates a particular search scope.  It’s working well so far.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

მაგალითი: XSLT ქმნის HTML href-ს

მე აკეთებდა ცოტა XSL პერსონალი ბოლო პერიოდში და მეგონა, მე მინდა ერთად სინჯი ჩემი მომავალი მინიშნება და ეს შეიძლება იყოს ღირებულების ყველა ჩვენგანისთვის XSLT-ers მიღების მცხოვრები internets.

განვიხილოთ შემდეგ XML:

<FdcSearchTabsCollection Count="2">
  <SearchTab Label="Industry" SortOrder=”00” Label=”Industries” SearchConstraints="contenttype:მრეწველობა" TabID="831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <SearchTab Label="Practices" SortOrder=”01” Label=”Practices” SearchConstraints="contenttype:PracticeGroups" TabID="678e206b-6996-421f-9765-b0558fe1a9c0"/>
</FdcSearchTabsCollection>

შემდეგ XSL snippet იქნება გადანაწილებული ჩამონათვალი hrefs ჩანართების:

<XSL:template match="FdcSearchTabsCollection" xml:space="preserve">
   
    <!– The "all" tab –>
    <a href="javascript:ViewTab(‘All’)">ყველა</a>
   
    <!– თითოეული ინდივიდუალური tab –>
    <!– Iterate მთელი ჩანართების და არიან სწორი  ბმულები. –>
    <XSL:for-each select="SearchTab">
      <XSL:sort select="@SortOrder"/>

      …
      <a href="javascript:ViewTab('{@ TabID}')"><XSL:value-of select="@Label"/></a>
    </XSL:for-თითოეული>

    <br /> 
   

   </XSL:template>

აი რას ჰგავს ამ SharePoint:

SNAGHTML78aa2cb

 

 

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin