Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Datagrid Control > Controls In DataGrid?

Reply
Thread Tools

Controls In DataGrid?

 
 
Arpan
Guest
Posts: n/a
 
      08-06-2006
Consider the following code which retrieves data from a SQL Server 2005
DB table & displays it in a DataGrid:

<script runat="server">
Sub Page_Load(ByVal obj As Object, ByVal ea As EventArgs)
Dim dSet As DataSet
Dim sqlConn As SqlConnection
Dim sqlDapter As SqlDataAdapter

sqlConn = New SqlConnection("Data Source=AD\SQLEXPRESS;Initial
Catalog=MyDB;Integrated Security=True")
sqlDapter = New SqlDataAdapter("SELECT * FROM Users", sqlConn)

dSet = New DataSet()
sqlDapter.Fill(dSet, "Users")

dgUsers.DataSource = dSet.Tables("Users").DefaultView
dgUsers.DataBind()
End Sub

Sub EditUsers(ByVal obj As Object, ByVal ea As
DataGridCommandEventArgs)
dgUsers.EditItemIndex = ea.Item.ItemIndex
dgUsers.DataBind()

Response.Write(Control0: ")
Response.Write(ea.Item.Cells(0).Controls(0))

Response.Write("<br>Control1: ")
Response.Write(ea.Item.Cells(0).Controls(1))

Response.Write("<br>Control2: ")
Response.Write(ea.Item.Cells(0).Controls(2))

Response.Write("<br>Control Count: " &
ea.Item.Cells(0).Controls.Count)
Response.Write("<br>Cell Count: " & ea.Item.Cells.Count)

'Response.Write("<br>Control3: ")
'Response.Write(ea.Item.Cells(0).Controls(3))
End Sub
</script>

<form runat="server">
<aspataGrid ID="dgUsers" OnEditCommand="EditUsers"
AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateColumn HeaderText="NAME">
<ItemTemplate>
<asp:Label ID="lblName" runat="server"><%#
Container.DataItem("FirstName") %> <%#
Container.DataItem("LastName") %></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="ADDRESS" DataField="Address"/>
<asp:BoundColumn HeaderText="CITY" DataField="City"/>
<asp:BoundColumn HeaderText="STATE" DataField="State"/>
<asp:BoundColumn HeaderText="ZIP" DataField="Zip"/>
<asp:EditCommandColumn HeaderText="EDIT" CancelText="CANCEL"
EditText="EDIT" UpdateText="UPDATE"/>
</Columns>
</aspataGrid>
</form>

Assume that the DataGrid displays 5 records. When I click the "Edit"
link corresponding to the, say, 1st record, apart from all fields
(editable & non-editable) displayed in the DataGrid, the first 4 pairs
of Response.Write lines within the sub "EditUsers" produce the
following output:

Control0: System.Web.UI.LiteralControl
Control1: System.Web.UI.WebControls.Label
Control2: System.Web.UI.LiteralControl
Control Count: 3
Cell Count: 6

Can someone please explain me how ASP.NET computes the control count to
3? The Label control under the 1st column named "NAME" makes up 1 of
the 3 controls but what/where are the other 2 Literal controls?

Thanks,

Arpan

 
Reply With Quote
 
 
 
 
Ken Cox [Microsoft MVP]
Guest
Posts: n/a
 
      08-07-2006
The easiest way to check for yourself is to put trace="true" in <%@ page
%>.

You'll see all the controls and their containers in a nice grid so you can
count for yourself.

"Arpan" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ups.com...
> Consider the following code which retrieves data from a SQL Server 2005
> DB table & displays it in a DataGrid:
>
> <script runat="server">
> Sub Page_Load(ByVal obj As Object, ByVal ea As EventArgs)
> Dim dSet As DataSet
> Dim sqlConn As SqlConnection
> Dim sqlDapter As SqlDataAdapter
>
> sqlConn = New SqlConnection("Data Source=AD\SQLEXPRESS;Initial
> Catalog=MyDB;Integrated Security=True")
> sqlDapter = New SqlDataAdapter("SELECT * FROM Users", sqlConn)
>
> dSet = New DataSet()
> sqlDapter.Fill(dSet, "Users")
>
> dgUsers.DataSource = dSet.Tables("Users").DefaultView
> dgUsers.DataBind()
> End Sub
>
> Sub EditUsers(ByVal obj As Object, ByVal ea As
> DataGridCommandEventArgs)
> dgUsers.EditItemIndex = ea.Item.ItemIndex
> dgUsers.DataBind()
>
> Response.Write(Control0: ")
> Response.Write(ea.Item.Cells(0).Controls(0))
>
> Response.Write("<br>Control1: ")
> Response.Write(ea.Item.Cells(0).Controls(1))
>
> Response.Write("<br>Control2: ")
> Response.Write(ea.Item.Cells(0).Controls(2))
>
> Response.Write("<br>Control Count: " &
> ea.Item.Cells(0).Controls.Count)
> Response.Write("<br>Cell Count: " & ea.Item.Cells.Count)
>
> 'Response.Write("<br>Control3: ")
> 'Response.Write(ea.Item.Cells(0).Controls(3))
> End Sub
> </script>
>
> <form runat="server">
> <aspataGrid ID="dgUsers" OnEditCommand="EditUsers"
> AutoGenerateColumns="false" runat="server">
> <Columns>
> <asp:TemplateColumn HeaderText="NAME">
> <ItemTemplate>
> <asp:Label ID="lblName" runat="server"><%#
> Container.DataItem("FirstName") %> <%#
> Container.DataItem("LastName") %></asp:Label>
> </ItemTemplate>
> </asp:TemplateColumn>
> <asp:BoundColumn HeaderText="ADDRESS" DataField="Address"/>
> <asp:BoundColumn HeaderText="CITY" DataField="City"/>
> <asp:BoundColumn HeaderText="STATE" DataField="State"/>
> <asp:BoundColumn HeaderText="ZIP" DataField="Zip"/>
> <asp:EditCommandColumn HeaderText="EDIT" CancelText="CANCEL"
> EditText="EDIT" UpdateText="UPDATE"/>
> </Columns>
> </aspataGrid>
> </form>
>
> Assume that the DataGrid displays 5 records. When I click the "Edit"
> link corresponding to the, say, 1st record, apart from all fields
> (editable & non-editable) displayed in the DataGrid, the first 4 pairs
> of Response.Write lines within the sub "EditUsers" produce the
> following output:
>
> Control0: System.Web.UI.LiteralControl
> Control1: System.Web.UI.WebControls.Label
> Control2: System.Web.UI.LiteralControl
> Control Count: 3
> Cell Count: 6
>
> Can someone please explain me how ASP.NET computes the control count to
> 3? The Label control under the 1st column named "NAME" makes up 1 of
> the 3 controls but what/where are the other 2 Literal controls?
>
> Thanks,
>
> Arpan
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Controls.Count, Controls.IsSynchronized, and Controls.SyncRoot Nathan Sokalski ASP .Net 4 09-05-2007 03:27 AM
IntelliSense on Web User Controls and Web Custom Controls Axel Dahmen ASP .Net 1 11-12-2003 06:12 AM
Multiple controls with the same ID '_ctl24' were found. Trace requires that controls have unique IDs Jeff Tolman ASP .Net 0 11-04-2003 09:53 PM
How to force the child controls OnClick event before the parent controls CreateChildControls method? Arulraja ASP .Net 3 10-17-2003 04:22 PM
HTML Controls and User controls trinitypete ASP .Net 6 06-26-2003 09:47 AM



Advertisments