2014-09-24 2 views
0

Я разрабатывал веб-приложение, которое содержит сетку данных, вложенную с другой сетью данных. Где в виде детской сетки данных содержится кнопка в конце каждой родительской сетки, как показано ниже : - enter image description hereКак проверить, какая кнопка строки нажата внутри Nested Datagrid

Что я хочу, мне нужно знать о кнопке «Щелкнуть по какой кнопке».

Вот мой 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 
      ......... 
     } 

может любой, пожалуйста, помогите мне решить эту проблему. Спасибо за помощь

ответ

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 
    } 

} 
+0

Спасибо, что ваше решение помогает мне выбраться из моего избавления. – Appdev

+0

hedge ca u, пожалуйста, помогите мне решить эту проблему http://stackoverflow.com/questions/26465071/how-to-upload-the-file-using-neatupload – Appdev

+0

, пожалуйста, помогите мне решить проблему, о которой я упоминаю здесь http: //stackoverflow.com/questions/28229164/web-application-which-is-working-in-firefox-chrome-and-ie8-is-not-opening-in-ie1 – Appdev