2016-12-30 5 views
0

У меня есть поле со списком, кнопка и вид функции поиска. Представление имеет два столбца, которые относятся к категории и курсу. В колонке «Курс» я установил многозначный разделитель «Новая строка», включил «Несколько значений как отдельные записи», а оба столбца заголовка - столбец сортировки. Таким образом, при использовании Internet Explorer, чтобы увидеть приложение, вид выглядит следующим образом:Показать значения в каждой строке при поиске

Category    | Course 
-------------------------------------------------------    
Accounting    | Advanced Accounting 
Accounting    | Introduction to Accounting 
Accounting    | Communication Skills 
Accounting    | Writing Skills 
Engineering    | Advanced Engineering 
Engineering    | Introduction to Engineering 
Engineering    | Communication Skills 
Engineering    | Writing Skills 
Information Technology | Advanced Information Technology 
Information Technology | Introduction to Information Technology 
Information Technology | Communication Skills 
Information Technology | Writing Skills 

(Update)

Спасибо Ответ stwissel-х, я извлекаю кнопку, так что есть поле со списком и вид который классифицируется. Хотя я не нашел «LimitToCategory» в свойствах представления (благодарен, если кто-то дал мне знать, где его найти), я получаю значение из поля со списком и помещаю его в «Фильтровать по названию категории», также в поле со списком есть onchange событие и частичное обновление представления.

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

Category    | Course 
-------------------------------------------------------    
Information Technology | Advanced Information Technology 
          Introduction to Information Technology 
          Communication Skills 
          Writing Skills 

Однако как отобразить курс индивидуально? Что я могу сделать, чтобы в курсе отображалась отдельная строка? (См пример ниже)

Category    | Course 
----------------------------------------------------------    
Information Technology | Advanced Information Technology 
---------------------------------------------------------- 
Information Technology | Introduction to Information Technology 
---------------------------------------------------------- 
Information Technology | Communication Skills 
---------------------------------------------------------- 
Information Technology | Writing Skills 
---------------------------------------------------------- 

добавить еще CustomerConverter с этого поста xpages view panel column multivalue separator, но результат все тот же.

Category    | Course 
----------------------------------------------------------    
Information Technology | Advanced Information Technology 
---------------------------------------------------------- 
Information Technology | Introduction to Information Technology 
---------------------------------------------------------- 
Information Technology | Communication Skills 
---------------------------------------------------------- 
Information Technology | Writing Skills 
---------------------------------------------------------- 

Прилагаю полный код для вашего отзыва, пожалуйста.

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoTheme="true"> 
<xp:this.resources> 
    <xp:dojoModule name="dijit.form.ComboBox"></xp:dojoModule> 
</xp:this.resources> 
<xp:comboBox id="comboBox2" dojoType="dijit.form.ComboBox" 
    style="width:400.0px" value="#{sessionScope.category}"> 
    <xp:selectItems> 
     <xp:this.value><![CDATA[#{javascript: 

var SetFirstValueBlank = @Text(""); 

return SetFirstValueBlank; 
}]]></xp:this.value> 
    </xp:selectItems> 
    <xp:selectItems> 
     <xp:this.value><![CDATA[#{javascript:@Unique(@DbColumn(@DbName(), "CategoryListView", 1));}]]></xp:this.value> 
    </xp:selectItems> 
    <xp:eventHandler event="onchange" submit="true" 
     refreshMode="partial" refreshId="viewPanel5"> 
    </xp:eventHandler> 
</xp:comboBox> 
<xp:br></xp:br> 
<xp:br></xp:br> 
<xp:viewPanel rows="30" id="viewPanel5"> 
    <xp:this.facets> 
     <xp:pager partialRefresh="true" layout="Previous Group Next" 
      xp:key="headerPager" id="pager5"> 
     </xp:pager> 
    </xp:this.facets> 
    <xp:this.data> 
     <xp:dominoView var="view2" 
      viewName="CategoryCourseView2"> 

      <xp:this.categoryFilter><![CDATA[#{javascript:getComponent("comboBox2").getValue();}]]></xp:this.categoryFilter> 
     </xp:dominoView> 
    </xp:this.data> 
    <xp:viewColumn columnName="Category" id="viewColumn9" 
     rendered="false"> 

     <xp:this.converter> 
      <xp:customConverter 
       getAsObject="#{javascript:return value;}"> 
       <xp:this.getAsString> 
        <![CDATA[#{javascript:return @Implode(value, "<br />")}]]> 
       </xp:this.getAsString> 
      </xp:customConverter> 
     </xp:this.converter> 

     <xp:viewColumnHeader value="Category" 
      id="viewColumnHeader9"> 
     </xp:viewColumnHeader> 
    </xp:viewColumn> 

    <xp:viewColumn id="viewColumn11" columnName="$10" 
     contentType="HTML"> 
     <xp:this.facets> 
      <xp:viewColumnHeader xp:key="header" 
       id="viewColumnHeader11" value="Category"> 
      </xp:viewColumnHeader> 
     </xp:this.facets> 
    </xp:viewColumn> 
    <xp:viewColumn columnName="CourseName" id="viewColumn10" 
     contentType="HTML"> 

     <xp:this.converter> 
      <xp:customConverter 
       getAsObject="#{javascript:return value;}"> 
       <xp:this.getAsString> 
        <![CDATA[#{javascript:return @Implode(value, "<br />")}]]> 
       </xp:this.getAsString> 
      </xp:customConverter> 
     </xp:this.converter> 

     <xp:viewColumnHeader value="Course" 
      id="viewColumnHeader10"> 
     </xp:viewColumnHeader> 
    </xp:viewColumn> 
</xp:viewPanel> 
</xp:view> 

Благодарный за ваш совет, пожалуйста. Спасибо.

ответ

0

При выборе значения из раскрывающегося списка вы фактически выполняете фильтр, а не поиск. В XPages вы классифицируете представление и вычисляете значение LimitToCategory как выпадающее значение - вы можете прямо указать значение этого свойства. Вам даже не понадобится кнопка. Для некоторых дизайн вдохновения см this article

Надежда, что помогает

+0

Здравствуйте, @stwissel, спасибо за ваш ответ и [статью] (http://www.notessensei.com/blog/2009/07/showing-categorized-views-in-web-applications.html). В этой статье, хотя в моем случае нет общего числа, я замечаю, что «Сводный вид по 3 категориям с строками данных» наиболее похож. Я не понимаю, как отображать отдельные строки данных. В свойствах представления я не могу найти этого. Я обновил код, может быть, я ошибаюсь в своем коде? Не могли бы вы взглянуть и поблагодарить за ваш совет, пожалуйста. Большое спасибо. – beginner

0

ViewPanel очень ограниченный компонент, направленный на предоставление базового управления представления на странице. Если вы хотите использовать более сложный или гибкий макет, лучше всего использовать повторный контроль.

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