同じ送信ボタンを使用して新しい行を追加し、ASP.NET フォームでデータベース テーブルの行の値を編集しています。CommandArgument
適用されるメソッドを変更するために使用します。
protected void btnSave_Click(object sender, EventArgs e)
{
if (!CheckProfileComplete())
{
btnSave.CommandArgument = "new";
btnSave.Text = "Save";
}
else
{
btnSave.CommandArgument = "update";
btnSave.Text = "Update";
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
string strCmd = this.btnSave.CommandArgument;
if (strCmd.ToLower() == "new")
{
//Add new Record
}
else if(strCmd.ToLower() == "update")
{
//Update existing record.
}
}
Add New
空白のフォームが表示される場合Update
、以前にデータベース テーブルに追加されたデータを含むフォームが表示され、ユーザーは値を編集して保存することができます。はCommandArgument
、他のいくつかのパラメーターをチェックした後、ページの読み込み時に更新されます。
メソッドは正常に実行されますが、のAdd New
場合は値を編集できませんUpdate
。フォームは、編集のためにユーザーに提示する前に動的に入力された同じ値を投稿することを意味します。[保存 (更新モード)] ボタンをクリックした後、変更が表示されません。値が変更されて戻された後でも、フォームは現在の状態として以前の状態を取るようです。
たとえば、最初にデータベースから読み取ったときにtbName.Text
値があった場合。foo
ユーザーが編集し、ポストバック前にtbName.Text
なりました。bar
ただし、デバッグ モードでフォームがポストされると、現在の値が代わりにtbName.Text
表示されます。foo
bar