A sample code to Create Bound Columns Dynamically- The demonstration shows the Dropdownlist poulated with the Tables in Database pubs on Page_Load event - On selection of the table from the dropdown it display the fieldnames in the listbox. - If no date is selected from the listbox the requiredfieldvalidator shows the error accordingly - As there are two buttons and the requiredfield validator should show error only when the button to show column data is clicked button showing the column names has the causevalidation = false - For multiselect of the listbox the listitem is being used.[bold]Step 1: main.aspx[/bold]
< TABLE id = "Table1" style = "Z-INDEX: 108; LEFT: 44px; POSITION: absolute; TOP: 24px" cellSpacing = "1" cellPadding = "1" width = "100%" border = "1" > < TR > < TD > < asp : Label id = "Label1" runat = "server" > Tables </ asp : Label ></ TD > < TD > < asp : DropDownList id = "DropDownList1" runat = "server" ></ asp : DropDownList ></ TD > < TD > < asp : Button id = "btnShow" runat = "server" Text = "Show Column Info" CausesValidation = "False" ></ asp : Button ></ TD > </ TR > < TR > < TD style = "HEIGHT: 29px" > < asp : Label id = "Label3" runat = "server" > Column Information </ asp : Label ></ TD > < TD style = "HEIGHT: 29px" > < asp : ListBox id = "ListBox1" runat = "server" SelectionMode = "Multiple" ></ asp : ListBox > < asp : RequiredFieldValidator id = "RequiredFieldValidator1" runat = "server" ErrorMessage = "Select Item(s) from List box" ControlToValidate = "ListBox1" ></ asp : RequiredFieldValidator ></ TD > < TD style = "HEIGHT: 29px" > < asp : Button id = "Button1" runat = "server" Text = "Show Data" ></ asp : Button ></ TD > </ TR > < TR > < TD ></ TD > < TD > < asp : DataGrid id = "DataGrid1" AutoGenerateColumns = "false" runat = "server" Height = "100px" ></ asp : DataGrid ></ TD > < TD ></ TD > </ TR > </ TABLE > [bold]Step 2:main.aspx.vb[/bold]
Dim myconnection
As SqlClient . SqlConnection Dim myda As SqlClient . SqlDataAdapter Dim ds As DataSet Private Sub Page_Load ( ByVal sender As System . Object , ByVal e As System . EventArgs ) Handles MyBase . Load 'Put user code to initialize the page here myconnection = New SqlClient.SqlConnection("Server=localhost;uid=sa;password=;database=pubs;") If Not Page.IsPostBack Then myda = New SqlClient.SqlDataAdapter("Select * from sysobjects where xtype=' u ' ", myconnection) ds = New DataSet() myda.Fill(ds, "AllTables") DropDownList1.DataTextField = "name" DropDownList1.DataSource = ds.Tables(0) DropDownList1.DataBind() End If End Sub Private Sub btnShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShow.Click ListBox1.Items.Clear() myda = New SqlClient.SqlDataAdapter("Select * from " & DropDownList1.SelectedItem.Text, myconnection) ds = New DataSet() myda.Fill(ds, "TableName") Dim dc As DataColumn For Each dc In ds.Tables(0).Columns ListBox1.Items.Add(dc.ColumnName) Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click myda = New SqlClient.SqlDataAdapter("Select * from " & DropDownList1.SelectedItem.Text, myconnection) ds = New DataSet() myda.Fill(ds, "TableName") Dim i As Integer Dim li As ListItem For Each li In ListBox1.Items If li.Selected Then Dim objbc As New BoundColumn() objbc.DataField = li.Text objbc.HeaderText = li.Text DataGrid1.Columns.Add(objbc) DataGrid1.DataSource = ds.Tables(0) DataGrid1.DataBind() End If Next End Sub
Please enable JavaScript to view the comments powered by Disqus. blog comments powered by