2012-12-19 11 views
5

mam to moim zdaniem:Wywołanie Q-Tip w JS dla każdego elementu w foreach problemu

<%-- 
    The training module list 
    --%> 
    <div id="training-mod-list-<%: categoryName.Replace(' ', '-') %>" class="training-module-list"> 
    <% foreach (var module in categoryGroup) 
    { %> 
    <div class="training-module-row">         
     <div class="training-module-name-<%: module.TrainingModuleId %>">  
      <script type="text/javascript"> 
      <%: Html.GetQTip(module.TrainingModuleId, "", "", QTipPosition.Right,true,""); %> //get error here it has some invalid arguments? 
      </script> 
     <%: module.TrainingModuleName %> 
     </div> 
    </div> 
<% } %> 

kiedy najechaniu na każdej nazwy modułu szkoleniowego chcę Q-Tip, aby pokazać.

Następnie GetQtip:

public static MvcHtmlString GetQTip(this HtmlHelper htmlHelper, string propertyName, string message, string propertyNameOverride = "", QTipPosition position = QTipPosition.Right, bool includeEvents = true, string title = "") 
{ 
    string qtipPosition = String.Empty; 

    switch (position) 
    { 
    case QTipPosition.Right: 
     qtipPosition = "my: 'left center', at: 'right center'"; 
     break; 
    case QTipPosition.Left: 
     qtipPosition = "my: 'right center', at: 'left center'"; 
     break; 
    case QTipPosition.Top: 
     qtipPosition = "my: 'top middle', at: 'bottom middle'"; 
     break; 
    case QTipPosition.Bottom: 
     qtipPosition = "my: 'bottom middle', at: 'top middle'"; 
     break; 
    } 

    if (!String.IsNullOrWhiteSpace(propertyNameOverride)) 
    propertyName = propertyNameOverride; 

    if (String.IsNullOrWhiteSpace(title)) 
    title = htmlHelper.Resource(Resources.Global.Title.Information); 

    StringBuilder sb = new StringBuilder(); 
    sb.Append(String.Concat("$('#", propertyName, "').removeData('qtip').qtip({content: {text:")); 
    sb.Append(String.Concat("'", message, "', title: { text: '", title, "', button: false }}, position: { ", qtipPosition, " }")); 
    if (includeEvents) 
    sb.Append(", show: { event: 'focus mouseenter', solo: true, ready: false }, hide: 'blur'"); 
    sb.Append(", style: { classes: 'ui-tooltip-shadow ui-tooltip-yellow' } });"); 

    return new MvcHtmlString(sb.ToString()); 
    } 
} 

teraz parametr wiadomości może być tylko dowolny ciąg Czy ktoś mi wyjaśnić, w jaki sposób jej będzie pracować, aby pokazać Q-Tip dla każdego modułu szkoleniowego id? parametr wiadomość zostanie później zawierać punkty specyficzne dla każdego modułu ID szkolenia składa się w ciąg html

dzięki

+0

Nowe pytania: czy chcesz pominąć ":" dla swojego "<%"? Czy nie powinno to być '<%: Html.GetQTip'? Może to był literówka, a może to niepotrzebne. Ponadto, dlaczego używasz składni 'position: QTipPosition.Right'? Po co włączać "pozycję:"? – Ian

+0

Edytowałem ponownie mój OP :) Teraz mam coś nie tak z listą parametrów –

+0

Czy 'module.TrainingModuleId' jest int lub string? Może to mieć większe znaczenie, ponieważ przekazujesz go do funkcji, która oczekuje pewnych typów. Zastanawiam się również, czy 'QTipPosition.Right' jest dostępny/ważny w tym kontekście. Nie wiedziałbym. Spróbuj zastąpić deklarację funkcji jako zezwalającą na łańcuch, a następnie przekazując ciąg - wystarczy sprawdzić, czy to jest problem. – Ian

Odpowiedz

0

Konwersja parametru TrainingModuleId z int do String dla pomocnika HTML.

<%: Html.GetQTip(module.TrainingModuleId.ToString(), "", "", QTipPosition.Right,true,""); %> 
Powiązane problemy