Rumah  >  Soal Jawab  >  teks badan

Warna latar belakang atau fon dalam HTML adalah merah

<p>Saya mempunyai kod berikut untuk menghantar pemberitahuan e-mel kepada penerima dan ia berfungsi dengan baik. Data sumber datang daripada pertanyaan SQL Server, yang saya panggil sementara jadual "#Temp_Warning". Jika nilai T.FORMATTED_ENTRY kurang daripada 10, penerima saya ingin nilai itu diserlahkan dengan warna merah dalam e-mel. Saya telah mencuba banyak, tetapi nilai kurang daripada 10 secara tidak dijangka menunjukkan keseluruhan kod<kod>"span style="background-color :red;">5</span"</code> Daripada hanya nombor 5 berwarna merah. </p> <p>Ini adalah sebahagian daripada kod untuk prosedur disimpan SQL Server</p> <pre class="brush:sql;toolbar:false;">IF (PILIH COUNT(*) DARI #Temp_Warning) > BERMULA --Formatkan kandungan e-mel dalam HTML ISYTIHKAN @tableHTML NVARCHAR(MAX); SET @tableHTML = N'<tr>' + N'<td><b>Nama Ujian</b></td>' + N'<td><b>Hasil diformat</td>' + N'</tr>' + CAST(( PILIH td = T.REPORTED_NAME,'', td = KES BILA T.FORMATTED_ENTRY <10 THEN'<span style="warna latar:merah;">' + T.FORMATTED_ENTRY + N'</span>' ELSE T.FORMATTED_ENTRY END, '' DARI #Temp_Warning T PESANAN OLEH T.REPORTED_NAME UNTUK LALUAN XML('tr'), TYPE ) SEBAGAI NVARCHAR(MAX)) + TAMAT </pra></p>
P粉038161873P粉038161873412 hari yang lalu713

membalas semua(1)saya akan balas

  • P粉550323338

    P粉5503233382023-09-04 00:35:48

    Sila cuba penyelesaian berikut.

    Ia menggunakan fungsi SQL Server XQuery.

    Selain itu, ia menggunakan CSS untuk menggayakan output XHTML.

    SQL

    -- DDL and sample data population, start
    DECLARE @tbl TABLE (test VARCHAR(100) PRIMARY KEY, result INT);
    INSERT @tbl (test, result) VALUES
    ('Bu', 57),
    ('Po', 5),
    ('Zu', 9);
    -- DDL and sample data population, end
    
    DECLARE @xhtmlBody XML
       , @body NVARCHAR(MAX)
       , @tableCaption VARCHAR(30) = 'Tests results report';
    
    SET @xhtmlBody = (SELECT (
    SELECT * FROM @tbl FOR XML PATH('row'), TYPE, ROOT('root'))
    .query('<html><head>
                <meta charset="utf-8"/>
                (: including embedded CSS styling :)
                <style>
                table <![CDATA[ {border-collapse: collapse;  width: 300px;} ]]>
                th <![CDATA[ {background-color: #4CAF50; color: white;} ]]>
                th, td <![CDATA[ { text-align: left; padding: 8px;} ]]>
                tr:nth-child(even) <![CDATA[ {background-color: #f2f2f2;} ]]>
                td:nth-child(2)  {text-align: center;} 
                #red <![CDATA[ {background-color: red;} ]]>
             </style>
             </head>
             <body>
    <table border="1">
       <caption><h2>{sql:variable("@tableCaption")}</h2></caption>
       <thead>
          <tr>
            <th>Test Name</th>
            <th>Formatted result</th>
          </tr>
       </thead>
       <tbody>
    {
        for $row in /root/row
        return <tr>
                <td>{data($row/test)}</td>
                <td>
                {if (($row/result/text())[1] lt 10) then attribute id {"red"} else ()}
                {data($row/result)}            
             </td>
            </tr>
    }
    </tbody></table></body></html>'));
    
    SELECT @xhtmlBody;
    SET @body = TRY_CAST(@xhtmlBody AS NVARCHAR(MAX));

    Output XHTML

    <html>
      <head>
        <meta charset="utf-8" />
        <style>
                table  {border-collapse: collapse;  width: 300px;} 
                th  {background-color: #4CAF50; color: white;} 
                th, td  { text-align: left; padding: 8px;} 
                tr:nth-child(even)  {background-color: #f2f2f2;} 
                td:nth-child(2)  {text-align: center;} 
                #red  {background-color: red;} 
             </style>
      </head>
      <body>
        <table border="1">
          <caption>
            <h2>Tests results report</h2>
          </caption>
          <thead>
            <tr>
              <th>Test Name</th>
              <th>Formatted result</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Bu</td>
              <td>57</td>
            </tr>
            <tr>
              <td>Po</td>
              <td id="red">5</td>
            </tr>
            <tr>
              <td>Zu</td>
              <td id="red">9</td>
            </tr>
          </tbody>
        </table>
      </body>
    </html>

    balas
    0
  • Batalbalas