This is a updated demo to create form wizard using an aspx page and code-behind in VB.NET |
<%@ Page Language="vb" EnableSessionState="False" EnableViewState="True" Trace="False" Debug="False" Inherits="createformcode" src="createformcode.vb" %> <HTML> <HEAD> <title></title> </HEAD> <body bgcolor="#ffffff"> <form runat="server" id="form1"> Select a tablename to create a .NET form for: <asp:dropdownlist id="tblList" runat="server" /> <asp:Button id="GetTable" Text="Get Table" onclick="GetTable_Click" runat="server" /> <asp:panel id="myPanel" runat="server" visible="false"><BR>Select the Columns used for generating the form. <asp:datagrid id="MyDataGrid" runat="server" AutoGenerateColumns="False" HeaderStyle-BackColor="#aaaadd" Font-Size="8pt" Font-Name="Verdana" CellPadding="3" BorderWidth="1" BorderColor="black"> <Columns> <asp:TemplateColumn HeaderText="Add?"> <ItemTemplate>
<asp:CheckBox id="chkAdd" runat="server" />
</ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn HeaderText="Name" DataField="name" /> <asp:TemplateColumn HeaderText="Create Validator?"> <ItemTemplate>
<asp:CheckBox id="chkValid" runat="server" />
</ItemTemplate> </asp:TemplateColumn> </Columns> </asp:datagrid> <asp:Button id="Button1" onclick="btnSubmit_Click" runat="server" Text="Create Form"></asp:Button> </asp:panel> <asp:panel id="pnlTextarea" visible="false" runat="server"> <P>Copy this code into a new ASP.NET page</P> <TEXTAREA id="taResults" name="taResults" rows="40" cols="90" runat="server"> </asp:panel> </form> </body> </html> </TEXTAREA> </asp:panel> </form> </body> </HTML>
|
|
Imports System Imports System.Text Imports System.IO Imports System.Data Imports System.Data.SqlClient Imports System.Configuration Imports System.Web Imports System.Web.UI.WebControls Imports System.Web.UI.HTMLControls Imports Microsoft.VisualBasic
Public Class createformcode: Inherits System.Web.UI.Page
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox Protected WithEvents MyDataGrid As System.Web.UI.WebControls.DataGrid Protected WithEvents taResults As System.Web.UI.HtmlControls.HtmlTextArea Protected WithEvents pnlTextarea As System.Web.UI.WebControls.Panel Protected WithEvents myPanel As System.Web.UI.WebControls.Panel Protected WithEvents tblList As System.Web.UI.WebControls.DropDownList Protected WithEvents GetTable As System.Web.UI.WebControls.Button Protected WithEvents btnSubmit As System.Web.UI.WebControls.Button
Dim sqlText As String Dim ds As New DataSet() Dim dbComm As New SqlDataAdapter() Dim conn As SqlConnection Dim sqlServer As String
Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sqlServer = GetSqlConn() conn = New SqlConnection(sqlServer) If Not IsPostBack Then sqlText = "select id, name from sysobjects where xtype='U' order by name" dbComm = New SqlDataAdapter(sqlText, conn) dbComm.Fill(ds, "AllTables") tblList.DataSource = ds.Tables("AllTables").DefaultView tblList.DataTextField = "name" tblList.DataValueField = "name" tblList.DataBind() End If End Sub
Function CreateValidator(ByVal myName As String) As String Dim mySB As StringBuilder = New StringBuilder()
REM -- use :<some text>: as placeholders mySB.Append("<asp:RequiredFieldValidator runat=""server"" id="":Name:"" ControlToValidate="":control:"" ErrorMessage="":errMsg:"" display=""Static"">This Required Field!</asp:RequiredFieldValidator>")
mySB.Replace(":Name:", "vld" & myName) 'add the validator name mySB.Replace(":control:", "at" & myName) 'add the control name mySB.Replace(":errMsg:", myName & " is required")
Return mySB.ToString()
End Function
Function GetSqlConn() As String Dim DSN As String = ConfigurationSettings.AppSettings("DSN") Return DSN End Function
Sub GetTable_Click(ByVal sender As Object, ByVal e As EventArgs) Dim sqlText As String sqlText = "SELECT syscolumns.name, syscolumns.isnullable FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id where sysobjects.name = '" & tblList.SelectedItem.Text & "' ORDER BY syscolumns.colid"
REM -- Connect to SQL dbComm = New SqlDataAdapter(sqlText, conn)
REM -- Fill DataSet dbComm.Fill(ds, "TestData") MyDataGrid.DataSource = ds.Tables("TestData").DefaultView MyDataGrid.DataBind()
REM -- Show the results myPanel.Visible = True
End Sub
Public Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim i As Integer Dim _item As DataGridItem Dim dr As DataRow Dim sb As StringBuilder = New StringBuilder() Dim strOutput As String
REM -- Auto Generate The Form sb.Append("<form runat=""server"" id=""form2"" name=""form2"">" & chr(13) & chr(10)) sb.Append(" <table border=1>")
For i = 0 To MyDataGrid.Items.Count - 1 REM -- Get the checkbox _item = MyDataGrid.Items(i) Dim addCheckBox As CheckBox = Ctype(_item.FindControl("chkAdd"), CheckBox) Dim validCheckBox As CheckBox = Ctype(_item.FindControl("chkValid"), CheckBox)
If addCheckBox.Checked Then sb.Append(" <tr>" & chr(13)) sb.Append(" <td>" & _item.Cells(1).Text & "</td>" & chr(13)) sb.Append(" <td>") sb.Append("<asp:textbox id=""at" & _item.Cells(1).Text & """ runat=""server"" />")
'create a validator control If validCheckBox.Checked Then sb.Append(" " & vbCrLf & CreateValidator(_item.Cells(1).Text)) End If
sb.Append("</td>" & chr(13)) ' sb.Append(" </tr>" & chr(13)) ' close out the row End If
Next sb.Append(" <tr>" & chr(13)) ' close out the row sb.Append(" <td colspan=""2""><asp:button id=""button1"" Text=""Validate Form"" runat=""Server"" /></td>" & vbCrLf) sb.Append(" </tr>" & chr(13)) ' close out the row sb.Append(" </table>" & chr(13)) sb.Append(vbCrLf & "</form>") strOutput = sb.ToString() strOutput = System.Web.HttpUtility.HtmlEncode(strOutput) taResults.Value = strOutput pnlTextarea.Visible = True End Sub
Private Sub InitializeComponent()
End Sub
End Class
| | DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |
More ASP.NET Code Articles More By aspfree developerWorks - FREE Tools! | Join this webcast, to learn how the Rational Process Library can help with compliance issues, drive process improvement, and assist in service-oriented architecture (SOA) or Agile development. We will take a peek into the Rational Process Library with content around software and systems engineering (including RUP), operations and systems management, program and portfolio management, and asset and SOA governance. FREE! Go There Now!
| | | | The XO laptop (of the One-Laptop-Per-Child initiative) is an inexpensive laptop project intended to help educate children around the world. The XO laptop includes many innovations, such as a novel, inexpensive, and durable hardware design and the use of GNU/Linux as the underlying operating system. The XO also includes an application environment written in Python with a human interface called Sugar, accessible to everyone (including kids). Explore the Sugar APIs and learn how to develop and debug a graphical activity in Sugar using Python. FREE! Go There Now!
| | | | CakePHP is a stable production-ready, rapid-development aid for building Web sites in PHP. This "Cook up Web sites fast with CakePHP" series shows you how to build an online product catalog using CakePHP. FREE! Go There Now!
| | | | In this tutorial, you can learn how to install and configure the IBM Rational Asset Manager Eclipse client, explore the different views in the Asset Management perspective, learn various search techniques, work with existing assets, and submit a new asset. FREE! Go There Now!
| | | | Learn how to implement a build management system that uses and extends your existing automation technologies. This tutorial shows, step-by-step, how to install and configure IBM Rational Build Forge to manage builds for Jakarta Tomcat from source code. FREE! Go There Now!
| | | | Asset Reuse is a key strategy for companies looking to create innovative solutions to solve complex software development problems. Searching for, identifying, updating, using and deploying software assets can be a difficult challenge. Listen to this webcast, to learn about strategies and tools that you can leverage for a successful project, including Rational Asset Manager, Rational Software Architect and WebSphere Service Registry and Repository. FREE! Go There Now!
| | | | Join this Rational Talks to You teleconference on November 29 at 1:00 pm ET to participate in an interactive discusssion with Grady Booch around architecture and reuse. Get your questions answered! FREE! Go There Now!
| | | | Get a free trial download of the latest version of IBM Rational Performance Tester V7.0.1, a load and performance testing solution for teams concerned about the scalability of their Web-based applications. Combining multiple ease-of-use features with granular detail, Rational Performance Tester simplifies the test-creation, load-generation and data-collection processes that help teams ensure the ability of their applications to accommodate required user loads. FREE! Go There Now!
| | | | In this webcast, IBM Rational will discuss the importance of Web application security and will share techniques and best practices to introduce application security testing into current QA processes including: understanding common security vulnerabilities and techniques to integrate security testing with defect tracking and remediation systems in an effort to safeguard sensitive online information. FREE! Go There Now!
| | | | User communities play an important role in communication and collaboration around products, solutions and other areas of special interest to members. Successful communities are able to provide the right mix of content and services to deliver a value proposition that resonates with each audience. Join Tom Inman, VP of Marketing for Information and Platform Solutions as he introduces the new LeverageINFORMATION community. During this webcast, learn about the value provided by the community and how customers and partners derive value from the community in addressing their own technical and business challenges. FREE! Go There Now!
| | | | All FREE IBM® developerWorks Tools! | |