我正在开发一个应用程序,它由与另一个dataGrid嵌套的datagrid组成,子网格有多个列,每行有一个复选框作为模板列,在父数据网格中,每行都有一个复选框。
我的要求: 如果在父网格中检查父网格中的第一行复选框,则在其尊重的子网格中,所有复选框都应选中,如果取消选中“父级”复选框,然后其子级应取消选择。如果选中一个或多个,则选择所有记录的子网格中的.Incase父网格复选框应部分检查。
这是我的aspx代码:
<asp:DataGrid ID="DG" runat="server" BorderWidth="1px" BorderColor="#FE9B00"
BorderStyle="Solid" BackColor="White" Font-Names="Verdana" Font-Size="XX-Small"
AutoGenerateColumns="False" ShowFooter="FALSE" CellPadding="3" align="center"
Width="700px" OnItemDataBound="DG_ItemDataBound" OnItemCommand="dgRecovery_ItemCommand">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="chkHeader" runat="server" CommandName="SelectAll" Text="selectAll" ForeColor="Blue" />
<asp:ImageButton ID="imgPlusMinusSign1" runat="server" Width="15px" Height="15px" Visible="false"
CommandName="CmdQuoteChargeDetails" ImageUrl="~/AppImages/Plus.gif"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Name" HeaderText="CFS Name" SortExpression="Name"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Amount in Base">
<ItemTemplate>
<asp:TextBox ReadOnly="true" BorderStyle="None" Width="100px" Font-Size="10px" ID="TXTLinerAmountMain"
Text='<%# DataBinder.Eval(Container, "DataItem.Amount") %>' runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:PlaceHolder ID="VoucherDetailsChargeId" runat="server" Visible="False"></td> </tr>
<tr>
<td width="9">
</td>
<td colspan="11">
<asp:DataGrid ID="dg_VCD" runat="server" DataSource='<%#GetCFSDetailsO( (String) DataBinder.Eval(Container.DataItem, "Name") ) %>'
AutoGenerateColumns="False" BorderColor="Tan" BorderWidth="1px" BackColor="LightGoldenrodYellow"
Width="100%" CellPadding="0" GridLines="Both" ForeColor="Black"
OnItemDataBound="dg_VCDO_ItemDataBound" OnItemCommand="dg_VCDItemCommand">
<FooterStyle ForeColor="#000066" Height="20px" BackColor="White"></FooterStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="Black" BackColor="Snow"></SelectedItemStyle>
<EditItemStyle BackColor="AntiqueWhite"></EditItemStyle>
<AlternatingItemStyle BackColor="Snow"></AlternatingItemStyle>
<ItemStyle Height="20px" ForeColor="#000066" BackColor="Snow"></ItemStyle>
<HeaderStyle Font-Size="XX-Small" Font-Bold="True" Height="20px" ForeColor="white" BackColor="orange"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="mODC_NUPKId" HeaderText="mFRL_NUPKId" Visible="False"></asp:BoundColumn>
<asp:TemplateColumn>
<HeaderStyle Width="5%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox ID="CHKJobsOR" onclick="javascript:CalculateTotalORCost(this);" runat="server" AutoPostBack="true"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="CostSheetNo" HeaderText="CostSheetNo" SortExpression="CostSheetNo"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
<br />
<br />
<td height="25"></td>
</asp:PlaceHolder>
</ItemTemplate>
<HeaderStyle Width="0px" />
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
这是我需要的视觉效果: 任何人可以帮助替换标题中的复选框的链接按钮,并进行部分检查(父复选框) - 检查任何一个检查(子复选框) check(Parent) - 检查所有记录(子网格) 取消选中(父) - 选择了一条记录。
提前致谢。