2017-07-12 2 views
1

J'ai une page qui contient gridview et le bouton maintenant je veux ajouter des valeurs gridview à la table de base de données lorsque je clique sur le bouton, mais quand je clique sur le bouton et essayer d'obtenir la valeur en utilisant find contrôler son ne pas montrer toute valeur qu'elle affiche comme valeur vide. mon code est donné ci-dessoustrouver le contrôle ne fonctionne pas gridview

aspx page 
<%@ Page Title="" Language="C#" MasterPageFile="Masters.Master" AutoEventWireup="true" EnableEventValidation ="false" CodeBehind="test.aspx.cs" Inherits="test" UICulture="hi-IN" Culture="hi-IN" %> 
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnDataBound="GridView1_DataBound" 
         OnRowDataBound="GridView1_RowDataBound" BackColor="White" BorderColor="White" 
         BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical"> 

<asp:TemplateField Visible="true"> 
           <HeaderTemplate> 
            <asp:Label ID="lbl4" runat="server" Text="test."></asp:Label> 
           </HeaderTemplate> 
           <ItemTemplate> 

            <asp:Label ID="lbltestno" runat="server" Text='<%# Bind("testing") %>' Visible="true"></asp:Label><br style="mso-data-placement:same-cell;"/> 


           </ItemTemplate> 
          </asp:TemplateField> 

.cs page 
on button click 
foreach (GridViewRow GvRow in GridView1.Rows) 
      { 

       Label lblvinnos = (Label)GvRow.FindControl("lbltestno"); 
} 

S'il vous plaît noter que cette page fonctionne bien quand je l'utilise sans la page principale, mais quand je suis en utilisant la page principale de son montrant trouver des valeurs de contrôle comme nulle

Je viens de vérifier ses conclusions valeur de la zone de texte pas des étiquettes une raison particulière?

+0

Quel est le code de votre zone de texte où l'utilisation de **. Aspx **. – AsifAli72090

+0

quelqu'un peut-il m'aider j'ai 2 en-tête en grille et quand j'utilise pour chaque boucle il prend un en-tête comme ligne en raison de laquelle ma valeur échoue pouvez-vous suggérer quoi faire –

Répondre

0

Vous devez trouver dans la cellule, cell_index est l'indice réel (commence par 0) de la cellule où réside le contrôle.

Label lblvinnos = (Label)GvRow.Cells[cell_index].FindControl("lbltestno"); 
+0

ok mais nous utilisons pour chaque boucle et et cela code fonctionne si je n'utilise pas la page maître une raison spécifique? et s'il vous plaît noter que je ne peux pas utiliser la cellule car j'ai un bouton commun de soumettre –

+0

Pourquoi ce code ne fonctionne pas pour vous. Soyez précis s'il vous plait. – Imad

+0

je l'avais essayé mais sa valeur non encore prise montre le texte comme nul –

0

Essayez en Bouton événement cliquée comme:

int indexcount = 0; 

foreach (GridViewRow row in GridView1.Rows) 
{ 
    // get value from label on each row in gridview 
    string value = (GridView1.Rows[indexcount].FindControl("lbltestno") as Label).Text; 

    indexcount++; 
} 
+0

j'ai un seul bouton en haut un bouton d'envoi dans lequel le code mentionné appelle –

+0

j'edited réponse. – AsifAli72090

+0

ne fonctionne pas affiche null –

0

créer le bouton dans un trigger champ de modèle

à l'intérieur de votre méthode de gridview_rowcommand

applique par ligne seulement

GridViewRow row = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer); 

string your_variable = Convert.ToDecimal(((TextBox)row.FindControl("your control here")).Text); 

espérons que cela aide