A
Arpan
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
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