0

私のページにはリピーターがあり、特に、ページのイベントで書き込むリピーターが含まれFooterTemplateています。LiteralLoadComplete

これFooterTemplateは次のとおりです。

<FooterTemplate>
        <tr>
            <td colspan="3">
                &nbsp;
            </td>
        </tr>
        <tr>
            <td>
                &nbsp;
            </td>
            <td>
                <b>Total:</b>
            </td>
            <td align="right">
                <asp:Literal runat="server" ID="ltrBasketTotal" />
            </td>
        </tr>
        <tr>
            <td>
                &nbsp;
            </td>
            <td>
                <b>Total inc. VAT:</b>
            </td>
            <td align="right">
                <asp:Literal runat="server" ID="ltrBasketTotalPlusVAT" />
            </td>
        </tr>
    </table>
</FooterTemplate>

画面に合計と合計に加えてVATが表示されるので、私のLoadComplete方法は正常に機能していることがわかります。私のPlaceOrder方法では、リピーターのコンテンツをストリームにレンダリングして、電子メールに含めます。

Using mStream As New System.IO.MemoryStream()

    Using writer As New System.IO.StreamWriter(mStream)

        Using rptSummaryContentWriter As HtmlTextWriter = New HtmlTextWriter(writer)

            rptSummary.RenderControl(rptSummaryContentWriter)

            Dim reader As New System.IO.StreamReader(mStream)
            reader.BaseStream.Position = 0

            customerOrderMail.Body = "Dear " & Session("displayname") & ",<br /><br />Thank you for your order through MyPortal, your reference for this order is " & newQuoteID.ToString() & ". Below is a summary of your order.<br /><br /><br />" & reader.ReadToEnd()

        End Using

    End Using

End Using

問題は、合計とVATが加算される最後の行を除いて、テーブル内のすべてが電子メールで送信されることです。

合計とVATの行はありません

誰かがなぜ何か考えを持っていますか?

編集:

電子メールクライアントでソースを確認したところ、必要な行と行が他にはないことがわかりまし<tr><td>RenderControlストリームからの読み取りが早すぎるようですが、呼び出し元に制御が戻った後に実行されると思いましたか?

4

1 に答える 1

0

を使用した後、単にストリームをフラッシュする必要があったことがわかりましたRenderControl

rptSummary.RenderControl(rptSummaryContentWriter)

rptSummaryContentWriter.Flush()

Using reader As New System.IO.StreamReader(mStream)

    reader.BaseStream.Position = 0

    customerOrderMail.Body = "Dear " & Session("displayname") & ",<br /><br />Thank you for your order through MyPortal, your reference for this order is " & newQuoteID.ToString() & ". Below is a summary of your order.<br /><br /><br />" & reader.ReadToEnd()

End Using
于 2012-11-23T11:29:47.307 に答える