私はGridViewに値を表示して更新しようとしています。それは、ラベルにある値を取得し、それを更新しようとするとTextBoxに切り替わることです。その後、その特定の値をGridViewの外のラベルに表示したいと思います。ASP.NETのGridViewを更新できません。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();
}
}
}
私は行を更新しようとするたびに、それが返されます:「オブジェクト参照がオブジェクトインスタンスに設定されていません。」 sum + = Convert.ToInt32(((Label)e.Row.Cells [4] .FindControl( "Label4"))。テキスト);
これを解決する方法はありますか?
どのラインでは? –
で:sum + = Convert.ToInt32(((Label)e.Row.Cells [4] .FindControl( "Label4"))。テキスト); –
行の4番目のセルにはラベルが含まれていますか?細胞のインデックスは0から始まります。 –