2015-08-04 5 views
0

Je travaille avec grid.net imbriqué, dans lequel je dois afficher les valeurs des cellules gridview dans la zone de texte pour les éditer.Afficher les valeurs des cellules gridview dans la zone de texte dans asp.net

Mon problème est que je ne sais pas comment afficher les valeurs dans la zone de texte si j'ai utilisé à la fois le champ modèle & boundfield. Voici mon aspx.

<Columns> 
    <asp:TemplateField ItemStyle-Width="10px"> 
     <ItemTemplate> 
     <img alt = "" style="cursor: pointer" src="images/plus.png" /> 
     <asp:Panel ID="pnsections" runat="server" Style="display: none;"> 
     <asp:HiddenField ID="HdnId" runat="server" Value='<%# Eval("Dept_Name") %>' /> 
     <asp:GridView ID="gvsections" Width="100%" CssClass="table table-bordered table-hover" runat="server" AutoGenerateColumns="false" OnRowDataBound="gvsections_rowdatabound" OnRowEditing="gvsections_rowediting" DataKeyNames="Dept_Name"> 

     <Columns> 

     <asp:BoundField ItemStyle-Width="150px" DataField="currdept" HeaderText="Deptcurrent" /> 
     <asp:BoundField ItemStyle-Width="150px" DataField="Dept_Name" HeaderText="SectionName" /> 
     <asp:BoundField ItemStyle-Width="150px" DataField="FLDTYPE" HeaderText="Type" HeaderStyle-CssClass=" visible-lg visible-md" ItemStyle-CssClass=" visible-lg visible-md " /> 

     </Columns> 
    </asp:GridView> 
    </asp:Panel> 
    </ItemTemplate> 
</asp:TemplateField> 
<asp:BoundField ItemStyle-Width="150px" DataField="Dept_Name" HeaderText="Department" /> 
<asp:BoundField ItemStyle-Width="150px" DataField="FLDTYPE" HeaderText="Type" /> 

    </Columns> 
</asp:GridView> 
+0

deptname.Text = gvdepts.Rows [row.RowIndex] .Cells [1] .Text montrant la valeur vide à l'intérieur DEPTNAME zone de texte. –

+0

est un gridview imbriqué et le gridview parent est 'gvdepts', j'ai une zone de texte nommée deptname. deptname.Text = gvdepts.Rows [row.RowIndex] .Cells [1] .Texte affichant la valeur vide dans la zone de texte deptname. –

+0

essayez de modifier votre déclaration comme suit ** deptname.Text = (gvdepts.Rows [row.RowIndex] .Cells [1] .Controls [0] en tant que Label) .Text ** –

Répondre

0

si vous écrivez le code dans SelectedIndexChanging cas de la vue de la grille essayez ceci et cela fonctionnera

GridViewRow row = gvdepts.Rows[e.NewSelectedIndex]; 
deptname.Text=row.Cells[1].Text; 

J'espère que cette aide

+0

il montre vide, n'a pas fonctionné. –

0

Dans votre code 3 champs contiennent dept name - HdnId (Hiddenfield), champ lié gridview interne (Dept_Name), champ lié gridview externe (Dept_Name).

1. deptname.Text = (gvdepts.SelectedRow.Cells[1].FindControl("HdnId") as HiddenField).Value; 

2. deptname.Text = (gvdepts.SelectedRow.Cells[1].FindControl("gvsections") as GridView).Rows[0].Cells[2].Text; 

3. deptname.Text = gvdepts.SelectedRow.Cells[2].Text; 

ce lien peut résoudre votre problème: http://www.aspforums.net/Threads/133072/Edit-Update-Delete-in-Nested-Child-GridView-in-ASPNet/

+0

dans l'exemple donné, le bouton de lien est utilisé pour l'édition mais dans mon cas, je veux éditer sans boutons de lien, grâce à la propriété indexchanged sélectionnée de la grille. Chaque fois que je clique sur une ligne, la propriété indexchanged sélectionnée devrait aider à afficher les valeurs de la grille dans la zone de texte respective du formulaire. J'ai besoin d'aide pour ça ... merci d'avance. –

+0

en utilisant hiddenfield a aidé à afficher la valeur deptname dans la zone de texte, mais à cause de cela, la gridview enfant a disparu. –

+0

Un incendie a été détecté sur un événement modifié. Et obtenir l'index de ligne comme: row.Row Index == gridview.SelectedIndex et trouver le champ requis –