phoenixfire425
asked on
E-Mail GridView ASP.net
I am trying to email a gridview that has user selected QTY's and Calculated Totals.
The Totals are being calculated Via a Javascript. Please see this page to see how we accomplished this. https://www.experts-exchange.com/questions/25629261/Convert-asp-net-VB-code-behind-script-to-Javascript.html
(I switched to Javascript because i did not want a postback to happen evertime a qty is selected.)
I currently have the CodeBehind Getting the gridview and then turning it into html and then emailing it.
But with new javascript in place to do the calculations, The Totals never come over on the email.
Please see the Code Box
Thank You.
The Totals are being calculated Via a Javascript. Please see this page to see how we accomplished this. https://www.experts-exchange.com/questions/25629261/Convert-asp-net-VB-code-behind-script-to-Javascript.html
(I switched to Javascript because i did not want a postback to happen evertime a qty is selected.)
I currently have the CodeBehind Getting the gridview and then turning it into html and then emailing it.
But with new javascript in place to do the calculations, The Totals never come over on the email.
Please see the Code Box
Thank You.
--- Emailing with CodeBehind doing the calculations ---
<tr class="RowStyle">
<td>P548440</td><td>
<div>
<img id="GridView1_ctl27_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i17479.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>EA</td><td>BP UNIT COMPLETE ADULT NAVY</td><td>10/1/2009</td><td>
<span id="GridView1_ctl27_Price">$16.12</span>
</td><td style="font-size:Medium;font-weight:bold;">
6
<span id="GridView1_ctl27_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl27_Totals">$96.72</span>
</td>
</tr>
--- Emailing with the Javascript doing calculations ---
<tr class="AltRowStyle">
<td>P150145</td><td>
<div>
<img id="GridView1_ctl15_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i19012.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>BX</td><td>BANDAGES, 3/4X3, SHEER, L/F, 100/BX</td><td>
<span id="GridView1_ctl15_Price">$1.65</span>
</td><td style="font-size:Medium;font-weight:bold;">
4
<span id="GridView1_ctl15_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl15_Totals"></span>
</td>
</tr>
--- Here is the code that i am using to do the emails ---
Private Sub DisableControls(ByVal gv As Control)
Dim lb As New LinkButton()
Dim l As New Literal()
Dim name As String = [String].Empty
For i As Integer = 0 To gv.Controls.Count - 1
If gv.Controls(i).[GetType]() Is GetType(LinkButton) Then
l.Text = TryCast(gv.Controls(i), LinkButton).Text
gv.Controls.Remove(gv.Controls(i))
gv.Controls.AddAt(i, l)
ElseIf gv.Controls(i).[GetType]() Is GetType(DropDownList) Then
l.Text = TryCast(gv.Controls(i), DropDownList).SelectedItem.Text
gv.Controls.Remove(gv.Controls(i))
gv.Controls.AddAt(i, l)
End If
If gv.Controls(i).HasControls() Then
DisableControls(gv.Controls(i))
End If
Next
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
DisableControls(GridView1)
'Dim CustomerEmail As String = CustomerCC.Text
Dim Customer As String = Session("Customer_ID")
Dim SpecialNotes As String = SpecNotes.Text
Dim SB As StringBuilder = New StringBuilder()
Dim SW As StringWriter = New StringWriter(SB)
Dim htmlTW As HtmlTextWriter = New HtmlTextWriter(SW)
Dim htmlfrm As HtmlForm = New HtmlForm()
htmlfrm.Controls.Add(GridView1)
GridView1.RenderControl(htmlTW)
Dim GridViewHTML As String = SB.ToString()
Dim strtoemail As String = Nothing
'Dim CCstrtoemail As String = Nothing
'Dim BCCstrtoemail As String = Nothing
strtoemail = Session("Email")
'CCstrtoemail = CustomerCC.Text
'BCCstrtoemail = "user@domain.com"
' email code //
Dim emailorders As MailMessage = New MailMessage()
Dim mySmtpClient As SmtpClient = Nothing
emailorders.From = New MailAddress("user@domain.com")
emailorders.To.Add(Session("Email"))
'emailorders.CC.Add((BCCstrtoemail))
'emailorders.Bcc.Add((BCCstrtoemail))
emailorders.Subject = " Order Confirmation for " + Customer
emailorders.IsBodyHtml = "True"
Dim embody As StringBuilder = New StringBuilder()
Dim ebody As String = Nothing
ebody = "<strong>Order Details For Customer Number: </strong>" + Customer + "<br />" + "<hr /><strong>NOTES: </strong>" + SpecialNotes + "<hr />" + GridViewHTML
embody.AppendLine()
embody.Append(ebody)
emailorders.Body = embody.ToString()
mySmtpClient = New SmtpClient("**.**.**.**")
mySmtpClient.Port = "25"
mySmtpClient.Send(emailorders)
Response.Write("<strong> Order Has Been Sent!!! </strong>")
'ltloutput.Text = Server.HtmlEncode(GridViewHTML);
Button1.Visible = "False"
SpecNotes.Visible = "False"
notelbl.Visible = "False"
End Sub
ASKER
I changed the Javascipt to the above and then changed my gridview footer to this
<FooterTemplate>
<asp:Label runat="server" ID="SubTotals"></asp:Label >
<asp:Label ID="lblTotal" runat="server"></asp:Label >
<input type="hidden" id="Hidden_Total" />
</FooterTemplate>
And after getting the email there is nothing in the email that has the total in it. Also none of the item totals are showing in the email either.
Also i dont think that you can display a TextBox in and HTML email without it being some kind of WebMail.. I figured that out when i was originally starting this project. and that is why i witched to DropDown Boxes.
<FooterTemplate>
<asp:Label runat="server" ID="SubTotals"></asp:Label
<asp:Label ID="lblTotal" runat="server"></asp:Label
<input type="hidden" id="Hidden_Total" />
</FooterTemplate>
And after getting the email there is nothing in the email that has the total in it. Also none of the item totals are showing in the email either.
Also i dont think that you can display a TextBox in and HTML email without it being some kind of WebMail.. I figured that out when i was originally starting this project. and that is why i witched to DropDown Boxes.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
of course :
document.getElementById("L abel_Total ").innerHT ML = "$" + total.toFixed(2);
document.getElementById("L
ASKER
Nope does not look like that worked.
Here is the HTML that came from the EMAIL.
Here is the HTML that came from the EMAIL.
<strong>Order Details For Customer Number: </strong>112258<br /><hr /><strong>NOTES: </strong><hr /><div>
<table class="GridViewStyle" cellspacing="0" rules="all" border="1" id="GridView1" style="border-collapse:collapse;">
<tr class="HeaderStyle">
<th scope="col"><a href="javascript:__doPostBack('GridView1','Sort$item_id')">Item ID</a></th><th scope="col"> </th><th scope="col"><a href="javascript:__doPostBack('GridView1','Sort$UOM')">Unit of Measure</a></th><th scope="col"><a href="javascript:__doPostBack('GridView1','Sort$item_desc')">Item Description</a></th><th scope="col"><a href="javascript:__doPostBack('GridView1','Sort$price')">Price</a></th><th scope="col">Qty</th><th scope="col">Extended Price</th>
</tr><tr class="RowStyle">
<td>K5150</td><td>
<div>
<img id="GridView1_ctl14_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i10252.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>BX</td><td>ALCOHOL PREP PADS MED 200/BX</td><td>
<span id="GridView1_ctl14_Price">$1.33</span>
</td><td style="font-size:Medium;font-weight:bold;">
4
<span id="GridView1_ctl14_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl14_Totals"></span>
</td>
</tr><tr class="AltRowStyle">
<td>P150145</td><td>
<div>
<img id="GridView1_ctl15_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i19012.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>BX</td><td>BANDAGES, 3/4X3, SHEER, L/F, 100/BX</td><td>
<span id="GridView1_ctl15_Price">$1.65</span>
</td><td style="font-size:Medium;font-weight:bold;">
14
<span id="GridView1_ctl15_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl15_Totals"></span>
</td>
</tr><tr class="RowStyle">
<td>P159025</td><td>
<div>
<img id="GridView1_ctl16_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i17418.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>BG</td><td>COTTON BALLS, MED, 2000/BG</td><td>
<span id="GridView1_ctl16_Price">$6.06</span>
</td><td style="font-size:Medium;font-weight:bold;">
0
<span id="GridView1_ctl16_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl16_Totals"></span>
</td>
</tr><tr class="AltRowStyle">
<td>RT-24</td><td>
<div>
<img id="GridView1_ctl17_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i10061.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>PK</td><td>ELECTRODE RESTING EKG TAB</td><td>
<span id="GridView1_ctl17_Price">$3.44</span>
</td><td style="font-size:Medium;font-weight:bold;">
0
<span id="GridView1_ctl17_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl17_Totals"></span>
</td>
</tr><tr class="RowStyle">
<td>P157117</td><td>
<div>
<img id="GridView1_ctl18_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="" style="width:20px;border-width:0px;" />
</div>
</td><td>PK</td><td>GAUZE PAD 4X4 N/S 8-PLY</td><td>
<span id="GridView1_ctl18_Price">$2.32</span>
</td><td style="font-size:Medium;font-weight:bold;">
11
<span id="GridView1_ctl18_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl18_Totals"></span>
</td>
</tr><tr class="AltRowStyle">
<td>164200</td><td>
<div>
<img id="GridView1_ctl19_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i09967.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>BX</td><td>GLOVE LATEX P/F MED INNOVAGRIP</td><td>
<span id="GridView1_ctl19_Price">$3.95</span>
</td><td style="font-size:Medium;font-weight:bold;">
0
<span id="GridView1_ctl19_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl19_Totals"></span>
</td>
</tr><tr class="RowStyle">
<td>115200</td><td>
<div>
<img id="GridView1_ctl20_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i05014.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>BX</td><td>GLOVE LATEX MED DERMASSIST</td><td>
<span id="GridView1_ctl20_Price">$4.23</span>
</td><td style="font-size:Medium;font-weight:bold;">
11
<span id="GridView1_ctl20_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl20_Totals"></span>
</td>
</tr><tr class="AltRowStyle">
<td>7400</td><td>
<div>
<img id="GridView1_ctl21_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i03933.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>PK</td><td>OTOSCOPE SPECULA, 4MM, DISP,</td><td>
<span id="GridView1_ctl21_Price">$19.78</span>
</td><td style="font-size:Medium;font-weight:bold;">
14
<span id="GridView1_ctl21_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl21_Totals"></span>
</td>
</tr><tr class="RowStyle">
<td>P080063</td><td>
<div>
<img id="GridView1_ctl22_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="" style="width:20px;border-width:0px;" />
</div>
</td><td>BX</td><td>PREGNANCY HCG TEST PRO ADVANTAGE</td><td>
<span id="GridView1_ctl22_Price">$18.95</span>
</td><td style="font-size:Medium;font-weight:bold;">
0
<span id="GridView1_ctl22_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl22_Totals"></span>
</td>
</tr><tr class="AltRowStyle">
<td>2161</td><td>
<div>
<img id="GridView1_ctl23_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i10364.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>BX</td><td>URINALYSIS STRIPS MULTISTIX 10SG</td><td>
<span id="GridView1_ctl23_Price">$39.25</span>
</td><td style="font-size:Medium;font-weight:bold;">
18
<span id="GridView1_ctl23_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl23_Totals"></span>
</td>
</tr><tr class="RowStyle">
<td>2001</td><td>
<div>
<img id="GridView1_ctl24_Image1" onerror="DisplayDefaultImage(this)" onmouseover="ShowBiggerImage(this);" onmouseout="ShowDefaultImage(this);" src="/se/images/items/i09766.jpg" style="width:20px;border-width:0px;" />
</div>
</td><td>BX</td><td>URINALYSIS STRIPS, REDISCREEN,</td><td>
<span id="GridView1_ctl24_Price">$21.95</span>
</td><td style="font-size:Medium;font-weight:bold;">
0
<span id="GridView1_ctl24_lblOrderStatus"></span>
</td><td>
<span id="GridView1_ctl24_Totals"></span>
</td>
</tr><tr>
<td> </td><td> </td><td> </td><td> </td><td>
</td><td> </td><td>
<span id="GridView1_ctl25_SubTotals"></span>
<span id="GridView1_ctl25_lblTotal"></span>
<input id="Hidden_Total" />
</td>
</tr>
</table>
</div>
ASKER
Any idea?
Is it possible to take the Gridview and the Notes textbox and then email them with Javascript??
Is it possible to take the Gridview and the Notes textbox and then email them with Javascript??
>document.getElementById(" Label_Tota l").innerH TML = "$" + total.toFixed(2);
You let the <input id="Hidden_Total" /> at the end...
and you said me :
>Is there a way to rebind the calculated vales to an ASP:Label?
So replace the input by an asp:label no ?
You let the <input id="Hidden_Total" /> at the end...
and you said me :
>Is there a way to rebind the calculated vales to an ASP:Label?
So replace the input by an asp:label no ?
ASKER
I could not get these to send Via Email.
They just appear blank in the email.
They just appear blank in the email.
Currently, what are you able to see in the email ? Do you see GLOVE LATEX MED DERMASSIST ?
ASKER
Sorry this has taken me a while i was out on medical leave :/
But i am going to start this project back up this week so i will post back soon!
Thank You
But i am going to start this project back up this week so i will post back soon!
Thank You
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
We ended up scrapping this part and actually built a cart system.
But I did try to get it to work and when it runs it does not see the text boxes upon email.
But thank you for trying to help.
But I did try to get it to work and when it runs it does not see the text boxes upon email.
But thank you for trying to help.
You may add an hidden field in your span :
replace :
by :
<input type="hidden" id="Hidden_Total" />
and you update it too in the javascript function (see the last line) :
Open in new window