J'essaie de mettre à jour et d'afficher une valeur présente dans mon GridView. Ce qu'il fait, c'est qu'il obtient une valeur présente dans l'étiquette et passe à TextBox lorsque j'essaie de le mettre à jour. Ensuite, je voudrais afficher cette valeur particulière dans une étiquette en dehors de la GridView.Impossible de mettre à jour GridView dans ASP.NET C#
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%#Eval("Product_Quantity") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%#Eval("Product_Quantity") %>'></asp:TextBox>
</EditItemTemplate>
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
dt = new DataTable();
dt = (DataTable)Session["anime"];
dt.Rows[e.RowIndex]["Product_Quantity"] = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2")).Text;
Session["anime"] = dt;
GridView1.EditIndex = -1;
FillGrid();
Response.Redirect("view_cart.aspx");
}
protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drv = e.Row.DataItem as DataRowView;
if (drv != null)
{
sum += Convert.ToInt32(((Label)e.Row.Cells[4].FindControl("Label4")).Text);
results.Text = sum.ToString();
}
}
}
Chaque fois que je tente de mettre à jour la ligne, il retournera: « référence d'objet non définie à une instance d'un objet. » à sum + = Convert.ToInt32 (((Label) e.Row.Cells [4] .FindControl ("Label4")). Texte);
Des idées pour résoudre ce problème?
Sur quelle ligne obtenez-vous l'exception? –
At: sum + = Convert.ToInt32 (((Label) e.Row.Cells [4] .FindControl ("Label4")). Texte); –
Etes-vous sûr que la quatrième cellule de la ligne contient l'étiquette. L'index des cellules commence à 0. –