我正在使用相同的提交按钮来添加新行,并在 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