 |
| ASP.NET 4 General Discussion For ASP.NET 4 discussions not relating to a specific Wrox book |
Welcome to the p2p.wrox.com Forums.
You are currently viewing the ASP.NET 4 General Discussion section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
|
|
|
|

May 27th, 2011, 05:42 PM
|
|
Authorized User
|
|
Join Date: Dec 2010
Posts: 21
Thanks: 4
Thanked 1 Time in 1 Post
|
|
VB InnerHTML for my form?
I have the following code in my webpage:
Code:
<script runat="server">
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim loginID = "------"
Dim transactionKey = "------"
Dim amount = "19.99"
Dim description = "Sample Transaction"
Dim label = "Submit Payment"
Dim testMode = "false"
amountSpan.InnerHtml = amount
descriptionSpan.InnerHtml = description
'........
'.........
'.........
'blah blah
'more code
'blah blah blah............
End Class
</script>
<title>Title Text</title>
</head>
<body>
Amount: <span runat="server" id="amountSpan"></span><br />
Description: <span runat="server" id="descriptionSpan"></span><br />
<form id="simForm" runat="server" method='post' action='https://test.authorize.net/gateway/transact.dll'>
<input id="HiddenValue" type="hidden" value="Initial Value" runat="server" />
<input type='hidden' runat="server" name='x_login' id='x_login' />
<input type='hidden' runat="server" name='x_amount' id='x_amount' />
<input type='hidden' runat="server" name='x_description' id='x_description' />
<input type='hidden' runat="server" name='x_invoice_num' id='x_invoice_num' />
<input type='hidden' runat="server" name='x_fp_sequence' id='x_fp_sequence' />
<input type='hidden' runat="server" name='x_fp_timestamp' id='x_fp_timestamp' />
<input type='hidden' runat="server" name='x_fp_hash' id='x_fp_hash' />
<input type='hidden' runat="server" name='x_test_request' id='x_test_request' />
<input type='hidden' name='x_show_form' value='PAYMENT_FORM' />
<input type='submit' runat="server" id='buttonLabel' />
</form>
and i get this error message:
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30469: Reference to a non-shared member requires an object reference.
Source Error:
---------------------------------------------
Line 51:
Line 52: amountSpan.InnerHtml = amount
Line 53: descriptionSpan.InnerHtml = description
Line 54:
---------------------------------------------
It seems to have a problem with "InnerHtml" but I don't understand why. The document is saved as .aspx, and I'm pretty sure it's an HTML form. does that make a difference? What am I missing?
Last edited by MtheK; May 27th, 2011 at 05:44 PM..
|
|

May 28th, 2011, 05:10 AM
|
 |
Wrox Author
|
|
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
|
|
In ASP.NET, controls must be placed in a form with a runat="server" attribute, which you seem to be missing. In Visual Studio, create a new Web Form to see the general layout. Then add your span inside this form. Then add your other form to the same page (but below the ASP.NET form). You can't nest forms in HTML, and ASP.NET requires you to have a form that complies to its rules, and by adding adding the second form below the first one, you can satisfy both rules.
Hope this helps,
Imar
|
|

May 28th, 2011, 12:29 PM
|
|
Authorized User
|
|
Join Date: Dec 2010
Posts: 21
Thanks: 4
Thanked 1 Time in 1 Post
|
|
Thansk for getting back to me so quickly
I'm pretty sure that my form had a runat="server" attribute, but I went ahead and tried your instructions, however I may have missed something or not done something right, because I still have the same problem.
Below is the code with the changes I made:
Code:
<%@ import namespace="System.Security.Cryptography" %>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
'Imports System.Security.Cryptography -required for fingerprint calculation-
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' start by setting the static values
Dim loginID = "----------"
Dim transactionKey = "------------"
Dim amount = "19.99"
Dim description = "Sample Transaction"
' The is the label on the 'submit' button
Dim label = "Submit Payment"
Dim testMode = "false"
'
'.......code that was considered unneccessary to include........
'
End Class
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Amount: <span runat="server" id="amountSpan"></span><br />
Description: <span runat="server" id="descriptionSpan"></span><br />
<form id="simForm" runat="server" method='post' action='https://test.authorize.net/gateway/transact.dll'>
<input id="HiddenValue" type="hidden" value="Initial Value" runat="server" />
<input type='hidden' runat="server" name='x_login' id='x_login' />
<input type='hidden' runat="server" name='x_amount' id='x_amount' />
<input type='hidden' runat="server" name='x_description' id='x_description' />
<input type='hidden' runat="server" name='x_invoice_num' id='x_invoice_num' />
<input type='hidden' runat="server" name='x_fp_sequence' id='x_fp_sequence' />
<input type='hidden' runat="server" name='x_fp_timestamp' id='x_fp_timestamp' />
<input type='hidden' runat="server" name='x_fp_hash' id='x_fp_hash' />
<input type='hidden' runat="server" name='x_test_request' id='x_test_request' />
<input type='hidden' name='x_show_form' value='PAYMENT_FORM' />
<input type='submit' runat="server" id='buttonLabel' />
</form>
</div>
</form>
</body>
</html>
Also, although I used visual basic to see what the web form would look like, as per your instructions, I am using microsoft expression web as my editor. I probably should have mentioned also that the page renders when I preview it in visual studio, but not in microsoft expression web.
|
|

May 28th, 2011, 01:03 PM
|
 |
Wrox Author
|
|
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
|
|
You have two forms nested within each other (e.g a form in a form) which is not supported. Also, yo can't have two forms with a runat attribute....
Imar
|
|

May 28th, 2011, 03:43 PM
|
|
Authorized User
|
|
Join Date: Dec 2010
Posts: 21
Thanks: 4
Thanked 1 Time in 1 Post
|
|
Sorry for the misunderstanding. I removed the extra form tag, but that's how it was before. It had the runat="server" before as well, and still has it now. same issue.
|
|

May 29th, 2011, 06:22 AM
|
 |
Wrox Author
|
|
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
|
|
If you want to "talk" to ths span, it needs to be in the form with a runat attribute. And since you can only have one server side form, you need to remove the attribute from the other form. E.g.
<form runat="server" .... >
</form>
<form>
<form>
But what exactly are you trying to accomplish? There may be other ways to do this. For example, you could build up the second form from code, or you could host it inside an iframe for example.
Imar
|
|

May 30th, 2011, 11:07 AM
|
|
Authorized User
|
|
Join Date: Dec 2010
Posts: 21
Thanks: 4
Thanked 1 Time in 1 Post
|
|
I'm trying to get the sample code to run outside of visual studio.
The spans aren't actually as important to me as the form with the inputs I'm trying to post.
I've tried removing the spans altogether, and it comes up with the same error, but in regards to these lines:
Code:
'Update the fields in the actual form
x_login.Value = loginID
x_amount.Value = amount
x_description.Value = description
buttonLabel.Value = label
x_test_request.Value = testMode
x_invoice_num.Value = invoice
x_fp_sequence.Value = sequence
x_fp_timestamp.Value = timeStamp
x_fp_hash.Value = fingerprint
End Sub
This code being relevant to it:
Code:
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' start by setting the static values
Dim loginID = "9u34JfHk"
Dim transactionKey = "2S4Eg77RWAqq472L"
Dim amount = "19.99"
Dim description = "Sample Transaction"
' The is the label on the 'submit' button
Dim label = "Submit Payment"
Dim testMode = "false"
...
'Update the fields in the actual form
x_login.Value = loginID
x_amount.Value = amount
x_description.Value = description
buttonLabel.Value = label
x_test_request.Value = testMode
x_invoice_num.Value = invoice
x_fp_sequence.Value = sequence
x_fp_timestamp.Value = timeStamp
x_fp_hash.Value = fingerprint
End Sub
...
End Function
...
End Class
What I want to do is be able to post my variables to the test webpage specified in the form. I am stuck on this approach because it was in the sample code.
|
|

May 30th, 2011, 11:17 AM
|
 |
Wrox Author
|
|
Join Date: Jun 2003
Posts: 17,089
Thanks: 80
Thanked 1,576 Times in 1,552 Posts
|
|
You probably get the same error because you now removed the runat attribute from the other form.
An ASPX page by default posts back to itself, so if you need to post back to another site, you need to create a separate, non server-side form. As i suggested earlier, you could build up the second form as a string frm code behind. Alternatively, you could look into "cross page postbacks". Google has a lot of information on this subject.
Hope this helps,
Imar
|
|
 |