我正在开展一个项目,人们可以更新"类别,例如更改类别的名称。有了这个,我有以下消息在使用SQL语句单击更新按钮后调用它:
Dim cs As ClientScriptManager = Page.ClientScript
cs.RegisterStartupScript(Me.GetType(), "Message", "alert
(' The category has been changed to:" + TextBoxCategorie.Text + "')", True)
哪个显示:类别已更改为:[文本框的值]
但是可以存储以前的值,所以你会得到类似的东西:
"沙"已成功更新为" Mud"
提前致谢
答案 0 :(得分:3)
创建一个HiddenField以与TextBox一起使用。页面最初加载时,使用初始值填充HiddenField。在PostBack上,将TextBox值与HiddenField值进行比较。您可以访问旧版和新版。
确保你没有在PostBack上重新填充HiddenField - 但是如果你从数据库填充它可能没关系。但是如果你只填写(Not Me.IsPostBack),那么在PostBack上,它应该为你提供首次加载页面时的价值。
答案 1 :(得分:2)
element.defaultValue
为您提供客户端的原始值。
Dim script As String = "var txt=document.getElementById('" & TextBoxCategorie.ClientID & "');if(txt!=null)alert(txt.defaultValue + ' has been changed to: " + TextBoxCategorie.Text + "')"
cs.RegisterStartupScript(Me.GetType(), "Message", script, True)
但是,只有在此请求中更改了它才会起作用。如果在将页面发送到客户端之前已经更改(如RegisterStartupScript
所示),则必须将旧值存储在其他位置或从数据库加载。
答案 2 :(得分:2)
查看Page Life Cycle Overview,您可以在覆盖之前从TextBox中获取值。有一个名为OnTextChanged
的事件似乎很有用,但问题是此时会覆盖旧值(此时Page_Load已经触发)。我会研究简单地使用Page_Init并在覆盖它之前将TextBox值赋给变量。
protected void Page_Init(object sender, EventArgs e)
{
String oldValue = TextBox.Text;
}