Apologies for going over your head. It will become clear over time.
There are basically two ways to add items to a page like you describe.
1. Make your own validation control. This is the *whoosh* you described, as
it requires some understanding of derived classes.
2. Add your own controls to the page that handle the special messages.
I will examine #2, as that is what you are trying (comments inline):
"Rob Meade" <ro**********@NOSPAMubht.swest.nhs.uk> wrote in message
news:eq**************@tk2msftngp13.phx.gbl...
I'm currently looking at the add table row / table cell dynamically etc -
but even that wont work - grrr - even using the example in the help file
with Visual Studio and likewise on the MS site - I suspect I have to put a
IMPORTS at the top of the page or something - but as usual no mention is
made of this in the help :o(
Any ideas...
This is what I'm trying :
Dim tRow As New TableRow()
Table1.Rows.Add(tRow)
When I try to use this in my code - the Dim line REMOVES the brackets at
the end of TableRow
The disappearing () is quite normal with Visual Basic. The problem is you
have not added any cells to the row. Here is an example that uses a label to
render some text.
Dim tr As New TableRow
Dim tc As New TableCell
Dim lbl As New Label
lbl.Text = "This is some sample text"
tc.Controls.Add(lbl)
tr.Cells.Add(tc)
Table1.Rows.Add(tr)
NOTE: You can also use a literal.
Dim tr As New TableRow
Dim tc As New TableCell
tc.Controls.Add(New LiteralControl("This is some sample text"))
tr.Cells.Add(tc)
Table1.Rows.Add(tr)
Literals are a little lighter, although you will not be able to position as
easily. As you are using a table, this is not a problem. NOTE that you could
do this a bit more longhand, if you wish:
Dim tr As New TableRow
Dim tc As New TableCell
Dim lit As new LiteralControl("This is some sample text"))
tc.Controls.Add(New LiteralControl(lit)
tr.Cells.Add(tc)
Table1.Rows.Add(tr)
Do not get overdrawn on the specifics here, just play with the code and you
will feel more comfortable. You can now loop, for example, through a loop of
validation error messages, like so:
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Get validation errors
' Assuming an array here, have to alter for other forms
Dim aryString() As String = ValidateErrors()
'Set up counter for the loop
Dim intCounter As Integer
For intCounter = 0 To UBound(aryString)
Dim tr As New TableRow
Dim tc As New TableCell
tc.Controls.Add(New LiteralControl(aryString(intCounter)))
tr.Cells.Add(tc)
Table1.Rows.Add(tr)
Next
End Sub
'NOTE: This is simply to test, create a true validation routine
' instead of this kludge
Private Function ValidateErrors() As String()
'Simple array; yours will come from validation
Dim outputString() As String = {"Validation error 1", _
"Validation error 2", "Validation Error 3"}
'Return the array for processing in Page_Load
Return outputString
End Function
--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
************************************************** ********************
Think Outside the Box!
************************************************** ********************