2017-08-30 1 views
-2

J'ai une table en quatre colonnes voir capture d'écran ici:comment modifier la valeur de la ligne gridview après cliquage événement

enter image description here

Mais je besoin de deux colonnes dans ce nom de la table et le sexe voir capture d'écran ici:

enter image description here

Affichage dans ce type mais j'ai besoin après cliquez sur le bouton valeur de la ligne changera en bouton GridView sur latéral dans GridView par exemple la valeur de ligne 1,2 peut à la place mâle et femelle qui est mon exigence.

+1

ne est pas un site free-lance, vous devriez essayer quelque chose de vous-même puis poser une question. – AsifAli72090

Répondre

0

Vous devez extraire ces données de la base de données dans l'ensemble de données ou dans la base de données et l'affecter en tant que DataSource à GridView et appeler DataBind sur ce GridView. Maintenant, dans l'événement RowDataBound, comparez la valeur et affectez la valeur à UI label/literal en fonction de cela. Ci-dessous est GridView dans la page ASPX.

<asp:GridView runat="server" AutoGenerateColumns="false" ID="GridView1" OnRowDataBound="GridView1_RowDataBound"> 
      <Columns> 
       <asp:TemplateField HeaderText="Employee Name"> 
        <ItemTemplate> 
         <asp:Literal ID="ltrlEmpName" runat="server" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Employee Gender"> 
        <ItemTemplate> 
         <asp:Literal ID="ltrlEmpGender" runat="server" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
</asp:GridView> 

Dans le code derrière, permet de dire que vous voulez attribuer à cette source de données le GridView en charge de la page ou toute autre méthode. Ci-dessous sera son code. Notez que dans l'exemple ici j'ai pris le DataTable factice et les valeurs remplies pour la simplicité, vous devez remplir ce DataTable des valeurs de DB.

protected void Page_Load(object sender, EventArgs e) 
     { 
      // Dummy data table below, that needs to be replaced by datatable/dataset fetched from database. 
      DataTable dt = new DataTable(); 
      dt.Columns.Add(new DataColumn("EmpName", typeof(string))); 
      dt.Columns.Add(new DataColumn("EmpGender", typeof(int))); 

      DataRow dr1 = dt.NewRow(); 
      dr1["EmpName"] = "Romesh"; 
      dr1["EmpGender"] = 1; 
      dt.Rows.Add(dr1); 

      DataRow dr2 = dt.NewRow(); 
      dr2["EmpName"] = "Sandya"; 
      dr2["EmpGender"] = 2; 
      dt.Rows.Add(dr2); 

      // Bind the datasource to gridview. 
      GridView1.DataSource = dt; 
      GridView1.DataBind(); 
     } 

protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
     { 
      if (e.Row.RowType == System.Web.UI.WebControls.DataControlRowType.DataRow) 
      { 
       System.Web.UI.WebControls.Literal ltrlEmpName = (System.Web.UI.WebControls.Literal)e.Row.FindControl("ltrlEmpName"); 
       System.Web.UI.WebControls.Literal ltrlEmpGender = (System.Web.UI.WebControls.Literal)e.Row.FindControl("ltrlEmpGender"); 

       // Bind employee name to its label. 
       ltrlEmpName.Text = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "EmpName")); 

       // Bind employee gender to its label based on its value. 
       if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "EmpGender")) == "1") 
       { 
        ltrlEmpGender.Text = "Male"; 
       } 
       else if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "EmpGender")) == "2") 
       { 
        ltrlEmpGender.Text = "Female"; 
       } 
       else 
       { 
        ltrlEmpGender.Text = "Other"; 
       } 
      } 
     } 

Vous obtiendrez comme tableau ci-dessous.

enter image description here

+0

J'ai l'erreur dans votre code –

+0

'ASP.gradedividing_aspx' ne contient pas une définition de 'GridView1_RowDataBound' et aucune méthode d'extension 'GridView1_RowDataBound' acceptant un premier argument de type 'ASP.gradedividing_aspx' n'a été trouvé (êtes-vous manquant une directive using ou une référence d'assembly?) \t C: \ Utilisateurs \ romesh \ GridviewTutorial \ GradeDividing.aspx –

+0

avez-vous placé "void protégé GridView1_RowDataBound ...." mentionné dans ma réponse dans votre fichier .cs? –