Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Add/edit records to parent and child nested datagrid

Status
Not open for further replies.

partymong

Programmer
Nov 5, 2003
39
0
0
GB
Hi All,
I would like to be able to create nested datagrids where I can add and edit a record of both the parent and child datagrids inline.

I am able to add/edit the datgrids on there own i.e. Not nested - I have created a datagrid that I can add and edit rows.

I am , however,unsure of how to combine the datagids so that will still be able to add/edit rows of both datagrids.

Any Help would be appreciated.

Thankyou in advance for your help.

Regards,

P
 
You have to place the grid you want to nest inside of a template column in the main grid.
 
Hi,
Ok thanks, but when I put my child grid in a template column of the parent grid I can't get my child grid events to fire.



Here is the grid I want to be the parent.


Code:
<asp:datagrid id="dgCRs" runat="server" ShowFooter="True" BorderStyle="Ridge" BorderColor="LightGray" BorderWidth="1px" DataKeyField="IssueID" AutoGenerateColumns="False" AllowSorting="True" HeaderStyle-Wrap="false" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="LightGrey" AlternatingItemStyle-BackColor="Linen" CellPadding="2" GridLines="Both" CssClass="tn10">
<EditItemStyle BackColor="#66FFFF"></EditItemStyle>
<AlternatingItemStyle BackColor="WhiteSmoke"></AlternatingItemStyle>
<HeaderStyle Font-Bold="True" Wrap="False" BackColor="LightGray"></HeaderStyle>
<FooterStyle BackColor="LightGray"></FooterStyle>
<Columns>
<asp:TemplateColumn SortExpression="IssueID" HeaderText="Issue ID" ItemStyle-Wrap="True" ItemStyle-Width="100px">
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<ItemTemplate>
<asp:LinkButton id="lnkbutexpand" runat="server" Text="<img  border=0 src=images/plus.gif alt=Expand>" CommandName="Edit"></asp:LinkButton>
<asp:label id ="ID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "IssueID").ToString()%>'  />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="IssueTitle" HeaderText="Issue Title">
<ItemTemplate>
<asp:HyperLink runat="server" Target="blank" Text='<%# Container.DataItem("IssueTitle") %>' NavigateUrl='<%# "[URL unfurl="true"]http://www.mysite.com/MyDetail.aspx?id="[/URL] + DataBinder.Eval(Container.DataItem,"IssueId").ToString()%>' ID="Hyperlink2" />
</ItemTemplate>							
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="StatusName" HeaderText="Status">
<ItemTemplate>
<asp:Label id=lblTStatusName runat="server" CssClass="tn10" Text='<%# Container.DataItem("StatusName") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>						
<asp:TemplateColumn SortExpression="Priorityname" HeaderText="Priority">
<ItemTemplate>
<asp:Label id=lblPriorityName runat="server" CssClass="tn10" Text='<%# Container.DataItem("PriorityName") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="CustomerName" HeaderText="Customer">
<ItemTemplate>
<asp:Label id=lblCustomerName runat="server" CssClass="tn10" Text='<%# Container.DataItem("CustomerName") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="VersionRaised" HeaderText="Version Raised">
<ItemTemplate>
<asp:Label id=lblVersionraised runat="server" CssClass="tn10" Text='<%# Container.DataItem("VersionRaised") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="VersionFixed" HeaderText="Version Fixed">
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<ItemTemplate>
<asp:Label id=lblVersionFixed runat="server" CssClass="tn10" Text='<%# Container.DataItem("VersionFixed") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="FixedBy" HeaderText="Fixed By">
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<ItemTemplate>
<asp:Label id=lblFixedBy runat="server" CssClass="tn10" Text='<%# Container.DataItem("FixedBy") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>

Here is the grid I want to be the child of rows in the parent grid.

Code:
<asp:datagrid id="dgTests" runat="server" ShowFooter="True" BorderStyle="Ridge" BorderColor="LightGray" BorderWidth="1px" DataKeyField="TestID" AutoGenerateColumns="False" AllowSorting="True" HeaderStyle-Wrap="false" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="LightGrey" AlternatingItemStyle-BackColor="Linen" CellPadding="2" GridLines="Horizontal" Width="490px" CssClass="tn10">
					<EditItemStyle BackColor="#66FFFF"></EditItemStyle>
					<AlternatingItemStyle BackColor="Linen"></AlternatingItemStyle>
					<HeaderStyle Font-Bold="True" Wrap="False" BackColor="LightGray"></HeaderStyle>
					<FooterStyle BackColor="LightGray"></FooterStyle>
					<Columns>
						<asp:TemplateColumn SortExpression="TDescription" HeaderText="Test Description">
							<ItemStyle HorizontalAlign="Left"></ItemStyle>
							<ItemTemplate>
								<asp:Label id=lblTDescription runat="server" CssClass="tn10" Text='<%# DataBinder.Eval(Container, "DataItem.TDescription", "{0:C}") %>' Width="200px">
								</asp:Label>
							</ItemTemplate>
							<FooterStyle HorizontalAlign="Left"></FooterStyle>
							<FooterTemplate>
								<asp:TextBox id="tbTDescriptionF" runat="server" CssClass="tn10r" Width="200px" Text=""></asp:TextBox>&nbsp;
								<asp:RequiredFieldValidator id="rfvtbTDescriptionF" runat="server" CssClass="hr10" Display="Dynamic" ErrorMessage="Please enter an amount" ControlToValidate="tbTDescriptionF"></asp:RequiredFieldValidator>
							</FooterTemplate>
							<EditItemTemplate>
								<asp:TextBox id=tbTDescription runat="server" CssClass="tn10" Width="200px" Text='<%# DataBinder.Eval(Container, "DataItem.TDescription", "") %>'>
								</asp:TextBox>
								<asp:RequiredFieldValidator id="rfvtbTDescription" runat="server" CssClass="hr10" Display="Dynamic" ErrorMessage="Please enter an amount" ControlToValidate="tbTDescription"></asp:RequiredFieldValidator>
							</EditItemTemplate>
						</asp:TemplateColumn>
						<asp:TemplateColumn SortExpression="TSDate" HeaderText="Date">
							<ItemTemplate>
								<asp:Label id=lblTSDate runat="server" CssClass="tn10" Text='<%# DataBinder.Eval(Container, "DataItem.TSDate", "{0:d}") %>'>
								</asp:Label>
							</ItemTemplate>
							<FooterTemplate>
								<asp:TextBox id="tbTSDateF" runat="server" CssClass="tn10" Width="75px" Text="" ReadOnly="True"></asp:TextBox>&nbsp;
								<asp:HyperLink id="lnkCalendarF" runat="server" ImageUrl="images/im_calendar.gif"></asp:HyperLink>&nbsp;
								<asp:RequiredFieldValidator id="rfvtbTSDateF" runat="server" CssClass="hr10" ControlToValidate="tbTSDateF" ErrorMessage="Please select a date" Display="Dynamic"></asp:RequiredFieldValidator>
							</FooterTemplate>
							<EditItemTemplate>
								<asp:TextBox id=tbTSDate runat="server" CssClass="tn10" Width="75px" Text='<%# DataBinder.Eval(Container, "DataItem.TSDate", "{0:d}") %>' ReadOnly="True">
								</asp:TextBox>&nbsp;
								<asp:HyperLink id="lnkCalendar" runat="server" ImageUrl="images/im_calendar.gif"></asp:HyperLink>&nbsp;
								<asp:RequiredFieldValidator id="rfvtbTSDate" runat="server" CssClass="hr10" ControlToValidate="tbTSDate" ErrorMessage="Please select a date" Display="Dynamic"></asp:RequiredFieldValidator>
							</EditItemTemplate>
						</asp:TemplateColumn>
						<asp:TemplateColumn SortExpression="TMethodName" HeaderText="Test Method">
							<ItemTemplate>
								<asp:Label id=lblTMethodName runat="server" CssClass="tn10" Text='<%# Container.DataItem("TMethodName") %>'>
								</asp:Label>
							</ItemTemplate>
							<FooterTemplate>
								<asp:DropDownList id="ddlTMethodF" runat="server" CssClass="tn10" DataTextField="TMethodName" DataValueField="TMethodID"></asp:DropDownList>
								<asp:comparevalidator id="cvddlTMethodF" runat="server" CssClass="hr10" Type="Integer" Operator="GreaterThan" ValueToCompare="0" Display="Dynamic" ErrorMessage="Please select a Test method" ControlToValidate="ddlTMethodF"></asp:comparevalidator>
							</FooterTemplate>
							<EditItemTemplate>
								<asp:DropDownList id="ddlTMethod" runat="server" CssClass="tn10" DataTextField="TMethodName" DataValueField="TMethodID"></asp:DropDownList>
								<asp:comparevalidator id="cvddlTMethod" runat="server" CssClass="hr10" Type="Integer" Operator="GreaterThan" ValueToCompare="0" Display="Dynamic" ErrorMessage="Please select a Test Method" ControlToValidate="ddlTMethod"></asp:comparevalidator>
							</EditItemTemplate>
						</asp:TemplateColumn>
						<asp:TemplateColumn SortExpression="TStatusName" HeaderText="Test Status">
							<ItemTemplate>
								<asp:Label id=lblTStatusName runat="server" CssClass="tn10" Text='<%# Container.DataItem("TStatusName") %>'>
								</asp:Label>
							</ItemTemplate>
							<FooterTemplate>
								<asp:DropDownList id="ddlTStatusF" runat="server" CssClass="tn10" DataTextField="TStatusName" DataValueField="TStatusID"></asp:DropDownList>
								<asp:comparevalidator id="cvddlTStatusF" runat="server" CssClass="hr10" Type="Integer" Operator="GreaterThan" ValueToCompare="0" Display="Dynamic" ErrorMessage="Please select a Test Status" ControlToValidate="ddlTStatusF"></asp:comparevalidator>
							</FooterTemplate>
							<EditItemTemplate>
								<asp:DropDownList id="ddlTStatus" runat="server" CssClass="tn10" DataTextField="TStatusName" DataValueField="TStatusID"></asp:DropDownList>
								<asp:CompareValidator id="cvddlTStatus" runat="server" CssClass="hr10" Type="Integer" Operator="GreaterThan" ValueToCompare="0" Display="Dynamic" ErrorMessage="Please select a Test Status" ControlToValidate="ddlTStatus"></asp:CompareValidator>
							</EditItemTemplate>
						</asp:TemplateColumn>
						<asp:TemplateColumn SortExpression="Tester" HeaderText="Tester">
							<ItemStyle HorizontalAlign="Left"></ItemStyle>
							<ItemTemplate>
								<asp:Label id=lblTester runat="server" CssClass="tn10" Text='<%# Container.DataItem("Tester") %>'>
								</asp:Label>
							</ItemTemplate>
							<FooterTemplate>
								<asp:DropDownList id="ddlTesterF" runat="server" CssClass="tn10" DataValueField="Tester"></asp:DropDownList>&nbsp;
							</FooterTemplate>
							<EditItemTemplate>
								<asp:DropDownList id="ddlTester" runat="server" CssClass="tn10" DataValueField="Tester"></asp:DropDownList>	
							</EditItemTemplate>
						</asp:TemplateColumn>
						<asp:TemplateColumn>
							<ItemTemplate>
								<asp:LinkButton id="lnkbutEdit" runat="server" Text="<img border=0 src=images/im_edit.gif alt=edit>" CommandName="Edit" CausesValidation="false"></asp:LinkButton>
							</ItemTemplate>
							<EditItemTemplate>
								<asp:LinkButton id="lnkbutUpdate" runat="server" Text="<img  border=0 src=images/im_update.gif alt=save/update>" CommandName="Update"></asp:LinkButton>&nbsp;
								<asp:LinkButton id="lnkbutCancel" runat="server" Text="<img border=0 src=images/im_cancel.gif alt=cancel>" CommandName="Cancel" CausesValidation="false"></asp:LinkButton>
							</EditItemTemplate>
						</asp:TemplateColumn>
						<asp:TemplateColumn>
							<ItemStyle HorizontalAlign="Center"></ItemStyle>
							<ItemTemplate>
								<asp:LinkButton id="lnkbutDelete" runat="server" Text="<img border=0 src=images/im_delete.gif alt=delete>" CommandName="Delete" CausesValidation="false"></asp:LinkButton>
							</ItemTemplate>
							<FooterStyle HorizontalAlign="Center"></FooterStyle>
							<FooterTemplate>
								<asp:Button id="btnAddRow" runat="server" CssClass="hb9" Text="ADD" CommandName="AddANewRow"></asp:Button>
							</FooterTemplate>
						</asp:TemplateColumn>
					</Columns>
				</asp:datagrid>


Thanks in advance for your help.

P
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top