1

私は Asp.net、C# アプリケーションに取り組んでいます。「更新」LinkBut​​ton をクリックした後、Web ページを更新したい。グリッド ビューで。次のコードを試しました。ただし、更新されたデータをグリッド ビューに保存せずにページを更新するだけです。

protected void LinkButton1_Click1(object sender, EventArgs e)
{
    Response.Redirect(Request.RawUrl.ToString());
}

データソースの名前SqlDataSourcePlan

SELECT [PlanID], [Deposit], [DepositReturn], [Discount] FROM [PaymentPlan] WHERE ([Ref] = @Ref)

UPDATE [PaymentPlan] SET [Deposit] = @Deposit, [DepositReturn] = @DepositReturn, [Discount] = @Discount WHERE [PlanID] = @original_PlanID
4

2 に答える 2

2

RawUrl代わりに使用してください:

Response.Redirect(Request.RawUrl)

生の URL は、ドメイン情報に続く URL の一部として定義されます。URL 文字列 http://www.contoso.com/articles/recent.aspxでは、生の URL は /articles/recent.aspx です。生の URL にはクエリ文字列が含まれます (存在する場合)。

編集「更新されたデータをグリッドビューに保存せずに」

ページをそれ自体にリダイレクトすると、何かが保存されるはずだと思うのはなぜですか?

このチュートリアルをご覧ください: SqlDataSource を使用したデータの挿入、更新、および削除 (C#)

ページ全体ではなく、GridViewを実際に 更新する必要があると思います。次に、 に電話する必要がありますGridView.DataBind()

于 2012-09-21T10:42:16.733 に答える
0

私の推測では (コードに他の情報が含まれていないと、言うのは困難です)、情報はデータベースに保存されますが、datasourcegridview新しい値で更新されません。この部分に関しては、この問題をよく見かけます。

リダイレクトの前に、Page.DataBindまたはGridViewName.DataBind()(どこGridViewNameにあなたの名前があります)でグリッドビューを再バインドする必要があります。gridview

おそらく、GridView をリロードしないPageLoadか、発生しPageLoadません (サーバー コードがないとわかりません)。それが適切に機能する場合、リダイレクトする前にデータバインディングは必要ありません。

于 2012-09-21T10:58:07.883 に答える