8

運が悪かったので、更新時にテキストボックスから変更された値を取得できるかどうかをテストしていました。新しい値を取得できません。私は何が間違っているのですか?私はたくさんのことを試みました。そしてこれが最新のものです。更新された新しい値をラベルに取得するにはどうすればよいですか?グリッドで[編集]をクリックしてテキストボックスの値を変更し、[更新]をクリックすると、ラベルにはテキストボックスの元の値が表示されます。

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
    GridView1.EditIndex = e.NewEditIndex;

    bindgrid();
}

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    GridViewRow row = GridView1.Rows[e.RowIndex];
    Label1.Text = ((TextBox)(GridView1.Rows[GridView1.EditIndex]).Cells[2].Controls[0]).Text;

    GridView1.EditIndex = -1;
    bindgrid();
}
4

3 に答える 3

23

Gridview更新リンクをプッシュすると、新しい値を取得する前に再度バインドされていると思います。if(!IsPostBack)前に使用する必要がありますGridView.DataBind()

于 2012-11-20T17:55:58.157 に答える
3

グリッドビューのEnableviewstateプロパティをfalseに設定するだけで、新しい値を取得できます。

<asp:GridView runat="server" EnableViewState="False" ID="GridView6"  AutoGenerateColumns="false" Width="100%"
                EmptyDataText="No Record Found" AllowPaging="false" PageSize="10" OnPageIndexChanging="ChangePage"
                OnRowCommand="RowCommand" OnRowDataBound="GridView6_RowDataBound" >
于 2017-03-20T13:07:43.513 に答える
0

GridView1.Rows[GridView1.EditIndex]現在の行がすでにあるのに、なぜもう一度電話をかけたのですか?すでに取得した行を使用してみてください

GridViewRow row = GridView1.Rows[e.RowIndex];
Label1.Text = ((TextBox) row.Cells[2].Controls[0]).Text;

これについてもっと読む

于 2012-11-20T18:13:58.093 に答える