B
bill yeager
I did some more debugging and found the following:
1) I placed the following code in the button event just
to see if I could cycle thru the datagrid control
collection:
<code>
Dim strhello As String
Dim myDataListItem As DataListItem
Dim myDatagridItem As DataGridItem
Dim myCheckBox As CheckBox
Dim myDataGrid As DataGrid
For Each myDataListItem In DataList2.Items
myDataGrid = myDataListItem.FindControl
("DataGrid3")
If Not IsNothing(myDataGrid) Then
For Each myDatagridItem In
myDataGrid.Items
myCheckBox = myDataGrid.FindControl
("Condition3")
If myCheckBox.Checked Then
strhello = "found!"
'do any processing that is needed
End If
Next
End If
Next
</code>
2) The line "For Each myDatagridItem In myDataGrid.Items"
produces the following:
- myDataGrid.Items.Count yields 4 (which is
correct since there are 4 rows in this child grid)
- myDatagridItem.Controls.Count yields 8 (which
is correct because there are 8 column controls).
According to this statement, I should be able to access
the columns inside this child grid.
- However, the statement "myCheckBox =
myDataGrid.FindControl("Condition3")" yields NOTHING... I
can't access any of the column controls inside this child
datagrid!
3) I'm able to get a listing on each of the items inside
this datagrid from item 0 to 7 as follows:
myDatagridItem.Controls.Item(7)
{System.Web.UI.WebControls.TableCell}
[System.Web.UI.WebControls.TableCell]:
{System.Web.UI.WebControls.TableCell}
BindingContainer:
{System.Web.UI.WebControls.DataGridItem}
ClientID: "DataList2__ctl1_Datagrid3__ctl2__ctl1"
Controls: {System.Web.UI.ControlCollection}
EnableViewState: True
ID: Nothing
NamingContainer:
{System.Web.UI.WebControls.DataGridItem}
Page: {ASP.BulkConditions_aspx}
Parent: {System.Web.UI.WebControls.DataGridItem}
Site: Nothing
TemplateSourceDirectory: "/LydianMDS"
UniqueID: "DataList2:_ctl1atagrid3:_ctl2:_ctl1"
Visible: True
Notice the ID above. EACH OF THESE ITEMS IS SET TO
NOTHING! That is the reason why I can't access the
controls in code..........
OK now... Since I have debugged this issue, I'm hoping
someone will be able to tell me WHY THOSE ITEMS HAVE AN
ID OF NOTHING... I'm expecting to find these items
programatcially, but can't. In my HTML below, you can
plainly see that the template columns have an ID
associated with them.
The following is the HTML of my entire datalist (parent)
and datagrid (child) controls.
<code>
<aspataList id=DataList2 style="Z-INDEX: 105; LEFT:
8px; POSITION: absolute; TOP: 192px" runat="server"
DataMember="spMSSASPGetDistinctOutstandingConditionsInInve
storReviewStep" DataKeyField="Lock_Number" DataSource="<%
# DsOutstandingCondsInInvestorRvw1 %>" Width="936px"
BackColor="White" BorderColor="#999999"
BorderStyle="None" BorderWidth="1px" CellPadding="3"
GridLines="Vertical" Height="544px">
<SelectedItemStyle Font-
Bold="True" ForeColor="White"
BackColor="#008A8C"></SelectedItemStyle>
<HeaderTemplate>
<P>Outstanding
BULK Conditions</P>
</HeaderTemplate>
<AlternatingItemStyle
BackColor="Gainsboro"></AlternatingItemStyle>
<FooterTemplate>
NO MORE
OUTSTANDING CONDITIONS
</FooterTemplate>
<ItemStyle
ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
<ItemTemplate>
<asp:label
id=Name2 runat="server" Text='<%# DataBinder.Eval
(Container, "DataItem.Name")%>'>
</asp:label>
<asp:label
id=LockNumber2 runat="server" Text='<%# DataBinder.Eval
(Container, "DataItem.Lock_Number")%>'>
</asp:label>
<asp:label
id=LoanID2 runat="server" Text='<%# DataBinder.Eval
(Container, "DataItem.LoanID")%>' Visible="False">
</asp:label>
<P>
<asp:Button id="btnWaive" runat="server"
Text="Waive All Conditions"
CommandName="Waive"></asp:Button>
<asp:Button id="btnNoWaive" runat="server"
Text="Don't Waive Any Condtions"
CommandName="NoWaive"></asp:Button></P>
<aspataGrid
id=Datagrid3 runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#999999"
BorderStyle="None" BorderWidth="1px" CellPadding="3"
GridLines="Vertical" datasource='<%#
Container.DataItem.CreateChildView
("spMSSASPGetDistinctOutstandingConditionsInInvestorReview
StepspMSSASPGetOutstandingConditionsInInvestorReviewStep")
%>'>
<SelectedItemStyle Font-Bold="True"
ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
<AlternatingItemStyle
BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle ForeColor="Black"
BackColor="#EEEEEE"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White"
BackColor="#000084"></HeaderStyle>
<FooterStyle ForeColor="Black"
BackColor="#CCCCCC"></FooterStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:checkbox runat="server"
id="Condition3"></asp:checkbox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Name" ReadOnly="True"
HeaderText="Name"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="LoanID">
<ItemTemplate>
<asp:label runat="server" id="LoanID3"
Text='<%# DataBinder.Eval(Container, "DataItem.LoanID") %
</asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Lock Number">
<ItemTemplate>
<asp:label runat="server"
id="LockNumber3" Text='<%# DataBinder.Eval
(Container, "DataItem.Lock_Number") %>'>
</asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Conditional Dtl
ID">
<ItemTemplate>
<asp:label runat="server"
id="ConditionDetailID3" Text='<%# DataBinder.Eval
(Container, "DataItem.ConditionDetailID") %>'>
</asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="ConditionID"
ReadOnly="True"
HeaderText="ConditionID"></asp:BoundColumn>
<asp:BoundColumn DataField="Description"
ReadOnly="True"
HeaderText="Description"></asp:BoundColumn>
<asp:BoundColumn DataField="Comment"
ReadOnly="True" HeaderText="Comment"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Center"
ForeColor="Black" BackColor="#999999"
Mode="NumericPages"></PagerStyle>
</aspataGrid>
</ItemTemplate>
<FooterStyle
ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SeparatorTemplate>
------------------
----------------------------------------------------------
----------------------------------------------------------
--------------------
</SeparatorTemplate>
<HeaderStyle Font-
Bold="True" ForeColor="White"
BackColor="#000084"></HeaderStyle>
</aspataList>
</code>
Can someone PLEASE HELP ME WITH THIS. I have gone as FAR
AS I can go with it. I'm totally stuck at this point...
Why do those controls in the datagrid have an ID of
NOTHING (thereby not allowing me to access those
controls)...
Thanks,
Bill
1) I placed the following code in the button event just
to see if I could cycle thru the datagrid control
collection:
<code>
Dim strhello As String
Dim myDataListItem As DataListItem
Dim myDatagridItem As DataGridItem
Dim myCheckBox As CheckBox
Dim myDataGrid As DataGrid
For Each myDataListItem In DataList2.Items
myDataGrid = myDataListItem.FindControl
("DataGrid3")
If Not IsNothing(myDataGrid) Then
For Each myDatagridItem In
myDataGrid.Items
myCheckBox = myDataGrid.FindControl
("Condition3")
If myCheckBox.Checked Then
strhello = "found!"
'do any processing that is needed
End If
Next
End If
Next
</code>
2) The line "For Each myDatagridItem In myDataGrid.Items"
produces the following:
- myDataGrid.Items.Count yields 4 (which is
correct since there are 4 rows in this child grid)
- myDatagridItem.Controls.Count yields 8 (which
is correct because there are 8 column controls).
According to this statement, I should be able to access
the columns inside this child grid.
- However, the statement "myCheckBox =
myDataGrid.FindControl("Condition3")" yields NOTHING... I
can't access any of the column controls inside this child
datagrid!
3) I'm able to get a listing on each of the items inside
this datagrid from item 0 to 7 as follows:
myDatagridItem.Controls.Item(7)
{System.Web.UI.WebControls.TableCell}
[System.Web.UI.WebControls.TableCell]:
{System.Web.UI.WebControls.TableCell}
BindingContainer:
{System.Web.UI.WebControls.DataGridItem}
ClientID: "DataList2__ctl1_Datagrid3__ctl2__ctl1"
Controls: {System.Web.UI.ControlCollection}
EnableViewState: True
ID: Nothing
NamingContainer:
{System.Web.UI.WebControls.DataGridItem}
Page: {ASP.BulkConditions_aspx}
Parent: {System.Web.UI.WebControls.DataGridItem}
Site: Nothing
TemplateSourceDirectory: "/LydianMDS"
UniqueID: "DataList2:_ctl1atagrid3:_ctl2:_ctl1"
Visible: True
Notice the ID above. EACH OF THESE ITEMS IS SET TO
NOTHING! That is the reason why I can't access the
controls in code..........
OK now... Since I have debugged this issue, I'm hoping
someone will be able to tell me WHY THOSE ITEMS HAVE AN
ID OF NOTHING... I'm expecting to find these items
programatcially, but can't. In my HTML below, you can
plainly see that the template columns have an ID
associated with them.
The following is the HTML of my entire datalist (parent)
and datagrid (child) controls.
<code>
<aspataList id=DataList2 style="Z-INDEX: 105; LEFT:
8px; POSITION: absolute; TOP: 192px" runat="server"
DataMember="spMSSASPGetDistinctOutstandingConditionsInInve
storReviewStep" DataKeyField="Lock_Number" DataSource="<%
# DsOutstandingCondsInInvestorRvw1 %>" Width="936px"
BackColor="White" BorderColor="#999999"
BorderStyle="None" BorderWidth="1px" CellPadding="3"
GridLines="Vertical" Height="544px">
<SelectedItemStyle Font-
Bold="True" ForeColor="White"
BackColor="#008A8C"></SelectedItemStyle>
<HeaderTemplate>
<P>Outstanding
BULK Conditions</P>
</HeaderTemplate>
<AlternatingItemStyle
BackColor="Gainsboro"></AlternatingItemStyle>
<FooterTemplate>
NO MORE
OUTSTANDING CONDITIONS
</FooterTemplate>
<ItemStyle
ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
<ItemTemplate>
<asp:label
id=Name2 runat="server" Text='<%# DataBinder.Eval
(Container, "DataItem.Name")%>'>
</asp:label>
<asp:label
id=LockNumber2 runat="server" Text='<%# DataBinder.Eval
(Container, "DataItem.Lock_Number")%>'>
</asp:label>
<asp:label
id=LoanID2 runat="server" Text='<%# DataBinder.Eval
(Container, "DataItem.LoanID")%>' Visible="False">
</asp:label>
<P>
<asp:Button id="btnWaive" runat="server"
Text="Waive All Conditions"
CommandName="Waive"></asp:Button>
<asp:Button id="btnNoWaive" runat="server"
Text="Don't Waive Any Condtions"
CommandName="NoWaive"></asp:Button></P>
<aspataGrid
id=Datagrid3 runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#999999"
BorderStyle="None" BorderWidth="1px" CellPadding="3"
GridLines="Vertical" datasource='<%#
Container.DataItem.CreateChildView
("spMSSASPGetDistinctOutstandingConditionsInInvestorReview
StepspMSSASPGetOutstandingConditionsInInvestorReviewStep")
%>'>
<SelectedItemStyle Font-Bold="True"
ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
<AlternatingItemStyle
BackColor="Gainsboro"></AlternatingItemStyle>
<ItemStyle ForeColor="Black"
BackColor="#EEEEEE"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White"
BackColor="#000084"></HeaderStyle>
<FooterStyle ForeColor="Black"
BackColor="#CCCCCC"></FooterStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:checkbox runat="server"
id="Condition3"></asp:checkbox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Name" ReadOnly="True"
HeaderText="Name"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="LoanID">
<ItemTemplate>
<asp:label runat="server" id="LoanID3"
Text='<%# DataBinder.Eval(Container, "DataItem.LoanID") %
</asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Lock Number">
<ItemTemplate>
<asp:label runat="server"
id="LockNumber3" Text='<%# DataBinder.Eval
(Container, "DataItem.Lock_Number") %>'>
</asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Conditional Dtl
ID">
<ItemTemplate>
<asp:label runat="server"
id="ConditionDetailID3" Text='<%# DataBinder.Eval
(Container, "DataItem.ConditionDetailID") %>'>
</asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="ConditionID"
ReadOnly="True"
HeaderText="ConditionID"></asp:BoundColumn>
<asp:BoundColumn DataField="Description"
ReadOnly="True"
HeaderText="Description"></asp:BoundColumn>
<asp:BoundColumn DataField="Comment"
ReadOnly="True" HeaderText="Comment"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Center"
ForeColor="Black" BackColor="#999999"
Mode="NumericPages"></PagerStyle>
</aspataGrid>
</ItemTemplate>
<FooterStyle
ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<SeparatorTemplate>
------------------
----------------------------------------------------------
----------------------------------------------------------
--------------------
</SeparatorTemplate>
<HeaderStyle Font-
Bold="True" ForeColor="White"
BackColor="#000084"></HeaderStyle>
</aspataList>
</code>
Can someone PLEASE HELP ME WITH THIS. I have gone as FAR
AS I can go with it. I'm totally stuck at this point...
Why do those controls in the datagrid have an ID of
NOTHING (thereby not allowing me to access those
controls)...
Thanks,
Bill