2017-09-20 1 views
0

comment obtenir la valeur sur le bouton textbox clic dans GridView imbriquécomment obtenir la valeur sur le bouton zone de texte, cliquez dans GridView imbriqué

<asp:GridView ID="GridView2" runat="server"> 

        <Columns> 
         <asp:TemplateField> 
          <ItemTemplate> 

            <asp:ImageButton ID="ImageButton1" runat="server" OnClick="Show_Hide_ChildGrid" ImageUrl="~/images/plus.png" CommandArgument="Show" Height="20" Width="20" /> 

           <asp:Panel ID="pnlOrders" runat="server" Style="display: none;"> 

            <asp:GridView ID="gvOrders" runat="server" OnRowCommand="gvOrders_RowCommand"> 
             <Columns> 


              <asp:TemplateField HeaderText="volNo"> 
               <ItemTemplate> 
                <asp:TextBox Width="90px" ID="txtVolume" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Volume") %>'></asp:TextBox> 
               </ItemTemplate> 
               <HeaderStyle Width="91px" /> 
              </asp:TemplateField> 

              <asp:ButtonField ButtonType="Button" CommandName="Save" Text="Save" HeaderText="Save"> 
               <HeaderStyle Width="50px" /> 
              </asp:ButtonField> 

             </Columns> 


            </asp:GridView> 

           </asp:Panel> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:BoundField DataField="JournalName" HeaderText="JournalName" ></asp:BoundField> 

        </Columns> 

       </asp:GridView> 

Je suis incapable d'obtenir la valeur de GridView textbox enfant. indique une erreur indiquant que cet identifiant (gridview) n'existe pas dans le contexte actuel. où son fonctionnement fonctionne bien dans gridview parent. quand j'ai essayé avec parent gridview alors son fonctionnement bien que le code signifie est bon. la façon dont je fais. Peut-être que c'est usé alors s'il vous plaît vérifier. Desing partie et .cs partie sont affichés. et je l'ai mentionné aussi où je reçois une erreur

protected void gvOrders_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 



     if (e.CommandName == "Save") 
     { 
       int rowIndex = Convert.ToInt32(e.CommandArgument); 
       **GridViewRow row = gvOrders.Rows[rowIndex];** // Here i am getting error that gvOrders does not exit in the current context 

       //GridView GVCollapse = (GridView)sender; //find nested grid view 
       //GridViewRow row = (GridViewRow)GVCollapse.Parent.Parent; 

       //Fetch value of Name. 
       string Journal = (row.FindControl("txtJournalName") as TextBox).Text; 
       string Volume = (row.FindControl("txtVolume") as TextBox).Text; 
       string Issues = (row.FindControl("txtIssues") as TextBox).Text; 
       string DispatchDate = (row1.FindControl("txtDispatchDate") as TextBox).Text; 
       string Remarks = (row.FindControl("txtRemarks") as TextBox).Text; 



       ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Name: " + Journal + "\\nCountry: " + Volume + "\\nDate: " + DispatchDate + "');", true); 



     } 
    } 

Répondre

0

Remplacer ButtonField avec le bouton:

<asp:TemplateField HeaderText="Save"> 
    <ItemTemplate> 
     <asp:Button ID="btnSave" CommandName="Save" runat="server" Text="Save" /> 
    </ItemTemplate> 
</asp:TemplateField> 

En cas RowCommand Essayez:

if (e.CommandName == "Save") 
{ 
    GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer); 
    GridView gv = (GridView)row.FindControl("gvOrders"); 

    string Journal = (row.FindControl("txtJournalName") as TextBox).Text; 
    //... some other code 
}  
+0

wow .. merci tellement .. son fonctionnement .. –

+0

En fait, je veux aussi savoir que Ajax-calendrier fonctionnera ou non dans la zone de texte gridview enfant ??? becoz je reçois problème. –

+0

oui cela va fonctionner et vous pouvez poster une question distincte ce problème. – AsifAli72090