Ответ.Записать в проблема

#html #vb.net #response.write

#HTML #vb.net #ответ.запись

Вопрос:

У меня есть этот код :

 <td class="tr-inverse">
    <div>
        <%                                  
            If nbVetementsNonRendu <= 0 Then
               Response.Write(String.Format("<b>{0} vêtement(s) en activité</b>", nbVetementsNonRendu))
            Else
               Response.Write(String.Format("<span style='font-weight:bold; color:red'>{0} vêtement(s) en activité</span>", nbVetementsNonRendu))
            End If
        %>
   </div>
 

Это работает довольно отлично. Моя проблема в том, что строка записывается два раза: один перед заголовком и один в хороших ячейках.

Мы нашли решение для блокировки первой записи :

 <td class="tr-inverse">
    <div>
        <%                                  
            Response.Write(AffichageResult(dlDetail))
        %>
    </div>
</td> 
 

и vb.net код :

 Public Function AffichageResult(ByVal dl As DataList) As String
    Dim retour As String = String.Empty
    indice = indice   1
    If indice = 1 Then
       If nbVetementsNonRendu <= 0 Then
          retour = String.Format("<b>{0} vêtement(s) en activité</b>", nbVetementsNonRendu)
       Else
          retour = String.Format("<span style='font-weight:bold; color:red'>{0} vêtement(s) en activité</span>", nbVetementsNonRendu)
       End If
    End If
    Return retour
End Function
 

Это не очень сексуально … так что есть другой способ исправить эту проблему? И почему там две записи?

Заранее спасибо.

Редактировать

Я нашел это решение в коде VB :

 If nbVetementsNonRendu <= 0 Then
      resultnbVetNRendu = String.Format("<b>{0} vêtement(s) en activité</b>", nbVetementsNonRendu)
Else
      resultnbVetNRendu = String.Format("<span style='font-weight:bold; color:red'>{0} vêtement(s) en activité</span>", nbVetementsNonRendu)
End If
 

и в html-коде :

 <td class="tr-inverse">
    <div id="dVetNRendu" runat="server">
         <%=resultnbVetNRendu%>             
    </div>
</td>
 

и теперь это работает отлично, но я не могу понять предыдущее поведение … если у кого-то есть объяснение, мне интересно!

Комментарии:

1. Ваш первый блок кода (вверху) находится в цикле? Это всего лишь один блок, поэтому я не вижу другого способа, которым он печатал бы дважды.

2. Да, это всего лишь один блок. Даже если мой новый код работает правильно, я думал, что = имеет то же значение, что и response.write, и я немного удивлен, что он ведет себя не так, как раньше

3. Есть ли Response.Flush() где-нибудь в коде?

4. @Keith нет, не было