Бесконечно вложенности <Div> Теги и jQuery

Это кажется такой теме oddball, Я не уверен, что это действительно стоит блог о, но это никогда не остановили меня до, Поэтому здесь мы идем Улыбка

Я работаю над проектом, где я потянув некоторые данные из поиска, Упаковка его в XML-сообщения, а затем XML в конечном итоге превращается в HTML через XSLT.  Существует много jQuery, один бит из которых реализует некоторые tabbing функцию.  При нажатии на вкладку (действительно, в <Div>), jQuery вызывает .hide() и .show() на различных DIV (Начальная страница загрузки загружает все содержимое в этом случае нет никаких обратных передач).

Куча часов назад, закладке Коммутационная логика начал работать с ошибками, и он не будет показывать один из моих плат.  Я в конечном итоге отслеживать его вниз на тот факт, что internet explorer (по крайней мере) думал, что <Div> что вложенные теги, гораздо глубже, чем предназначены.Разработчик инструментов будет показывать:

-<div id = «Tab1Content»>
  -<Div>
    -<Div>
      -<div id = «Tab2Content»>
        -<Div>
           …………………………
                   </Div>  <— Наконец показывать его был закрыт весь путь вниз здесь!

Таким образом, Если я сделал $(«# Tab1Content»).скрыть(), Я также хотел бы скрыть Tab2, и я никогда не мог бы показать Tab2, если я не показал Tab1.  Я скопирован и вставлен код в visual studio и он показал все div накладки вверх красиво, так же, как они должны были делать, Глядя, как это:

-<div id = «Tab1Content»>
  +<Div>
  +<Div>
-<div id = «Tab2Content»>
  +<Div>
  +<Div>

Я избил моей головой о стену в то время как и заметил, что в фактических HTML код создает много пустых <Div> Теги, как:

<тело>

  <div id = «Tab1Content»>

    <div id = «row1» />
    <div id = «row2» />

  </Div>

  <div id = «Tab2Content»>

    <div id = «row1» />
    <div id = «row2» />

  </Div>

</тело>

(Приведенные выше является чрезмерно waaaaaaaaaaaay.  Пустая div теги являются полностью действительными. Некоторые из моих <Div> Теги были полны содержание, Однако многие другие не были.  Я пришел к реализации, моя <XSL:для каждого> директивы с короткой форме div метки когда xsl:для каждого не ' найти любые данные.  Я заставили комментарий HTML в выходной, как показано:

image

 

После того, как я сделал это, все div очереди, красиво и моя вкладка переключения начал работать.

Как всегда, Я надеюсь, что это помогает кто-то в крайнем случае.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Быстрое исправление: "Имя типа содержимого '$ ресурсы:ReportServerResources … не может содержать … специальные символы”

Я потратить некоторое время, уборка SharePoint 2010 сайт и один из вопросов очистки относится к коррупции / неправильно установлен выпуск служб отчетов SQL Server.  Этот вопрос возник, когда один из моих коллег пытался сохранить узел как шаблон, а затем создать создать новый сайт, основанный на этом шаблоне.  Сохранение операции работал штрафа, но когда она попыталась создать новый сайт, SharePoint отображается следующее сообщение об ошибке:

Ошибка

Имя типа содержимого '$ ресурсы:ReportServerResources,DataSourceContentTypeName;' не может содержать: \ / : * ? “ # % < > { } | ~ & , два последовательных периодов (..), или специальные символы, такие как знак табуляции.

Вот экран cap:

 

image

Я имел взгляд на типы содержимого на сайте и нашел этот:

image

Эти типы контента являются явно нездоровой.

Эта проблема, как представляется, многое прийти на Интернет и не похоже один консенсус о том, как решить эту проблему.  Я нашел удобный таблицу, сопоставить имена плохой тип содержимого хорошее содержание имена типов здесь: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Я обновить вручную их thusly:

image

(BrightStarr имя необязательно явно, но оно не может повредить Улыбка )

Это позволило мне создать новый шаблон и не разорвать все на других сайтах, в том числе некоторые вещи сервера PerformancePoint, что совершенно другой группы людей работали над.  Я был тогда удалось создать новый сайт в шаблоне.  Успех!

Я не уверен, это 100% решение, но он меня и всех участников в прошлом это раздражает ошибка.  Если я нахожу что-нибудь новое, Я пост обновления.  Моя нервозность проистекает из того факта, что эти имена не должна быть неправильно в первую очередь и путем установления отображаемое имя, Я не касаясь внутреннее имя. 

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Одной из причин для "создатель этой сбоев не указали причину.”

Я делаю много работы с последнее время поиска SharePoint и специально класс KeywordQuery, свойства и методы.

Если вы хотите, чтобы результирующий набор для возвращения результатов помимо обычных подозреваемых (Смотрите здесь), Добавьте его к коллекции SelectedProperties, как и в:

myKeywordQuery.SelectProperties.Add(«xyzzy»);

Большое спасибо и кончик шляпе с Corey рот и Это чрезвычайно полезно блога (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

В моем случае, «xyzzy» не является на самом деле управляемое свойство.  Когда я добавил его к SelectedProperties так или иначе, SharePoint бросил один из моих любимых когда-либо исключений среды выполнения:

«Создатель этой сбоев не указали причину».

Мне особенно нравится столицы «R» в причине.  Это звучит для меня как.NET эквивалент"У меня не рот, и я должен кричать.”

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Удобный ссылка: По умолчанию результаты поиска KeywordQuery

При вызове Execute() метод на KeywordQuery, можно создать ResultTable, основанный на ResultType.RelevantResults.  Этот фрагмент кода иллюстрирует то, что я имею в виду:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Результирующая таблица будет иметь следующие столбцы информации: 

WorkId
Ранг
Название
Автор
Размер
Путь
Описание
Написать
Имя_узла
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Я вывел этот список из SharePoint 2010 Окружающая среда, Выпуск Enterprise edition.  Надеюсь это будет удобно для кого-то в будущем.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Одна из причин для: «Не удалось извлечь CAB-файла в решение”

Во время работы с visual studio веб-части проекта сегодня, Я сделал незначительными ре org некоторых файлов будет введен в папке _layouts в рамках процесса развертывания. Специально, Я переименовал файл .js от «TypeAhead.js» до "TypeAhead(Старый).АО"  Я планирую удалить его после того, как ее преемником «TypeAhead.js» оказывается правильным.  Он посмотрел, как это:

image

Это сразу же вызвало проблемы с помощью visual studio, когда я попытался развернуть проект:

Произошла ошибка в шаге развертывания «Добавление решения»: Не удалось извлечь CAB-файла в решение.

Оказывается, что вы не должны поставить скобки в именах файлов.  Я удалил parens и что решить эту проблему.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Еще больше jQuery–Изменение размера изображения пример

Я унаследовал веб-часть от старого поставщика клиента и он имеет проблему размер изображений.  Изображения должны быть 60×50 но для некоторых странно причине, первоначальный поставщик заставили их в 42×42, Таким образом они выглядят сжато:

 

Хорошее изображение

Плохое изображение

Вот разметка (несколько упрощена):

<Таблица класса = «продлен outlook»>
  <thead>
    <TR>
      <th  Ширина ='100′>3 Вторник</th>
    </TR>
  </thead>

  <tbody>
    <TR класса = «прогноз»>
      <ТД width = "100′>
        <UL>
          <ли класса = «высокий»>Высокая: 72&град;F</ли>
          <ли класса = «низкая»>Низкая: 44&град;F</ли>
          <ли класса = «состояние»>Солнечный
            <img src =’
HTTP://deskwx.WeatherBug.com/Images/Forecast/icons/localized/60×50/EN/TRANS/cond007.PNG’ Ширина ='42’ Высота ='42’ ALT =” />
          </ли>
        </UL>
      </ТД>
    </TR>

  </tbody>

</Таблица>

Можно отметить, что хотя путь к изображению, сам показывает надлежащее измерение (60×50) первоначальный поставщик вынудил его в 42×42.  Почему?  Crazy.

В любом случае, Я хотел быстрого и простого решения этой проблемы, и я повернулся к jQuery.  Хитрость заключается в том, чтобы найти все соответствующие <IMG> Теги.  Я не хочу, чтобы сбросить карты с других тегов img (из которых есть много).  Этот бит jQuery сделал трюк:

<сценарий type = "текст/javascript" src ="HTTP://AJAX.googleapis.com/AJAX/libs/jQuery/1.5/jQuery.min.js"></сценарий>

<сценарий type = «текст/javascript»>
     $(документ).готов(функция () {

         $(' li.condition > IMG').Каждый(функция (индекс, пункт)
           
{
             $(пункт).CSS(«Ширина», «60»); 
             $(пункт).CSS(«Высота», «50»);
            });
     }); // при загрузке документа
</сценарий>

Что немного кода находит коллекции <ли> Теги, чей класс является «условие» и <IMG> дети.  Затем выполняется итерация всего этого.  Работал как Шарм.

Я мог бы вероятно рационализировать, но я никогда не был вида парень unix, решена π Кому 18 точность цифр с помощью sed и awk и я не такого рода, если jQuery парень, либо Улыбка.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Синтаксический анализ XML с помощью LINQ

Вот быстрый пример с использованием LINQ для разбора некоторых  XML и получить на сладкий, сладкий атрибуты в нем.

Вот я хочу для разбора XML:

<?Версия XML = "1.0" кодирование = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout имя = «xyzzy»>
      <Вкладки>
        <Вкладка TabOrder = "1" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = «ac1» />
        <Вкладка TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = «ac2» />
      </Вкладки>
    </PageLayout>

    <PageLayout имя = «xyzzy2»>
      <Вкладки>
        <Вкладка TabOrder = "100" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = «ac1» />
        <Вкладка TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = «ac2» />
        <Вкладка TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = «ac3» />
      </Вкладки>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Я хочу создать несколько вкладок во время выполнения путем синтаксического анализа выше.  Моя вкладки зависит от макета страницы.  Если моя макета страницы имя «xyzzy2» тогда я хочу получить вкладки 100, 101 и 103 (вкладки в <PageLayout имя = «xyzzy2»>).

Вот LINQ, который делает это:

var allTabs =
              от p в
                  XElement.Parse(theXmlToParse).
                 
Элементы(«PageLayouts»).
                  Элементы(«PageLayout»)
              где (p.Attribute(«имя»).Value.Equals(«xyzzy2»))
              от м в p.Elements(«Вкладки»).Элементы(«Закладка»)
              Выберите m;

          Results.text = строка.Пустой;

          по каждому элементу (var aTab в allTabs)
          {
              Results.Text =
                  "Порядок табуляции: " + aTab.Attribute(«TabOrder»).Значение + " |" +
                  "Вкладку ярлык: " + aTab.Attribute(«TabLabel»).Значение + " | " +
                  "SharePointContentType: " + aTab.Attribute(«SharePointContentType»).Значение + " | " +
                  "AdditionalConstraints: " + aTab.Attribute(«AdditionalConstraints»).Значение + «r»;
          }

В приведенном выше, Строковая переменная является переменная «theXmlToParse», но вы можете использовать нагрузки() Метод потока, если вам нравится.

«Результаты» — лейбл в веб-форме и когда этот код выполняется, Он выглядит следующим образом:

SNAGHTML11cd2e7c

Я еще не работал, как сортировать результаты еще не, так что я оставлю это для будущего блога.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery и анонимных пользователей

Я включен анонимный доступ в моем сайте для тестирования поиска веб-части, которую я и не большому удивлению, Он совсем не работает.  Анонимный доступ почти всегда является проблемой для меня.

В этом случае, по некоторым причинам не был запущен первоначальный поиск.  Я должен сказать, что это был работает, но он не возвращался никаких результатов.  Я использую KeywordQuery для этого первоначального отображения.

Я сделал быстрый поиск и это блоге сообщение"sowmyancs"подошел достаточно быстро: “SharePoint 2010 Поиск: не показывает каких-либо результатов для анонимных пользователей?”  Запись в блоге описывает проблему из вне поле ключевое слово поиска перспективы, но поведение был похож на шахты – он работал для прошедших проверку пользователей и для анонимных пользователей, Однако анонимные пользователи получил не результатов. 

Я следовал инструкциям и взрыв!  Она решена моя проблема.  Я не уверен, что это будет иметь побочные эффекты и они могут оказаться проблемой, но результат краткосрочной перспективе является полезным.

Нажмите на через блог:

image

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

SharePoint 2010 KeywordQuery и HiddenConstraints свойства

Я делаю немного работы с KeywordQuery объект в SharePoint 2010 и с использованием HiddenConstraints Свойства.

Я не нашел каких-либо немедленно полезную информацию о том, что свойства, Поэтому я думал, я бы быстро кратко записать как я начал использовать его.

Как я могу сказать, Это автоматическое ограничение, добавляется к запросу, что можно выполнить сортировку парка он там и не беспокоиться об этом.  Как таковой, Это просто еще одним ключевым словом (или набор ключевых слов) и модификаторов, которые можно ввести в пользовательский интерфейс когда вы делаете поиск по ключевым словам.  Ниже приведен пример:

keywordQuery.HiddenConstraints = "сфера:\«Industry»»;

Можно добавить дополнительные ограничения с разделителями пространства.

keywordQuery.HiddenConstraints = "сфера:\"Industry" Оборона";

Выше говорит на английском языке, "ключевое слово запрос ищет «обороны» и Кроме того, использовать область «Промышленность».

Вот еще один способ взглянуть на него:

image

Я начал использовать его для обеспечения автоматического область контекстно зависимого пользовательской веб-части.  Когда пользователь нажимает на вкладке и нажимает кнопку Поиск, закладке диктует области конкретного поиска.  Это хорошо что работает.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Пример: XSLT создавать HTML Href

Я в последнее время делает немного XSL вещи и подумал я бы воедино образец для моей будущей справки и которые могут иметь ценность для всех нас XSLT-ность сделать жизнь в Интернет.

Рассмотрим следующий XML-код:

<Граф FdcSearchTabsCollection = «2»>
  <SearchTab Label = "промышленность" SortOrder = «00» Label = «Индустрии» SearchConstraints = "contenttype:Промышленность" TabID = «831b2a74-98c4-4453-8061-86e2fdb22c63» />
  <SearchTab Label = "практики" SortOrder = «01» Label = «Практики» SearchConstraints = "contenttype:PracticeGroups" TabID = «678e206b-6996-421f-9765-b0558fe1a9c0» />
</FdcSearchTabsCollection>

В следующем фрагменте XSL будет генерировать отсортированный список hrefs вкладок:

<XSL:шаблон матч = "FdcSearchTabsCollection" XML:пространства = «preserve»>
   
    <!– "Все" Закладка –>
    <a href = "javascript:ViewTab(«Все»)">Просмотреть все</в>
   
    <!– Каждый индивидуальный закладка –>
    <!– Итерацию всех вкладок и отображать правильное  ссылки. –>
    <XSL:для каждого select = «SearchTab»>
      <XSL:select="@SortOrder"/ Сортировка>

      …
      <a href = "javascript:ViewTab(‘{@ TabID}’)"><XSL:Стоимость от select="@Label"/></в>
    </XSL:для каждого>

    <br /> 
   

   </XSL:шаблон>

Вот как он выглядит в SharePoint:

SNAGHTML78aa2cb

 

 

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin