我正在开发一个Web应用程序,其中包含一个与另一个数据网格嵌套的数据网格。因为子数据网格包含每个父网格末尾的按钮,如下所示: -
我想要的是我需要知道按钮单击哪个按钮。
这是我的aspx代码:
<asp:DataGrid ID="dgparent" runat="server" BorderWidth="1px" BorderColor="#FE9B00">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:DataGrid ID="dgchild" runat="server" >
<Columns>
<asp:BoundColumn DataField="ID" HeaderText="mFCF_NUPKId" Visible="False"></asp:BoundColumn>
<asp:BoundColumn DataField="CostSheetNo" HeaderText="CostSheetNo" SortExpression="CostSheetNo">
</Columns>
</asp:DataGrid>
<table>
<tr>
<td>
<asp:Label ID="LblTotalCoLoaderFrom1" runat="server" Text="Total Cost : "></asp:Label>
<asp:TextBox ID="TxtTotalCoLoaderFrom1" runat="server" Enabled="false"></asp:TextBox>
</td>
<td>
<asp:Label ID="LblTotalYeild" runat="server" Text="Total Yeild : "></asp:Label>
<asp:TextBox ID="TxtTotalYeild" runat="server" Enabled="false"></asp:TextBox>
</td>
<td>
<asp:Button ID="BTNBookingReq" runat="server" class="formbutton" OnClick="BTNBookingReq_Click" Text="Send Booking Request"/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
这是我的C#:
protected void BTNBookingReq_Click(Object sender, EventArgs e)
{
Button btnSender = (Button)sender;
//if(btnSender == 1strow)
//Need to get the Parent Column Text
else if(btnSender == 2ndrow)
//Need to get the Parent Column Text
.........
}
任何人都可以帮我解决这个问题。 在此先感谢
答案 0 :(得分:1)
您可以使用按钮的NamingContainer获取父网格项,这将提供datagrid项。从那里你可以使用FindControl方法找到每个文本框,如下所示
protected void BTNBookingReq_Click(Object sender, EventArgs e)
{
Button btnSender = (Button)sender;
DataGridItem item = btnSender.NamingContainer as DataGridItem;
if (item != null)
{
TextBox TxtTotalCoLoaderFrom1 = item.FindControl("TxtTotalCoLoaderFrom1") as TextBox;
//Do your operation here
}
}