在回发时获取asp.net控件的旧值
我希望能够找到asp.net控件的旧值(文本框、复选框等),而不依赖于事件(例如OnTextChange事件)。像“someTextboxControl.OldText”这样的东西会很完美!我认为它存储在viewstate中,需要通过自定义控件以某种方式获取它。有什么想法吗?Shrage提供的答案很有帮助,但需要额外的搜索才能使此解决方案起作用。我将他的代码放在我正在处理的页面名称空间中的代码后面。此外,我必须注册控件,并更改和更新有问题的控件在回发时获取asp.net控件的旧值,asp.net,viewstate,Asp.net,Viewstate,我希望能够找到asp.net控件的旧值(文本框、复选框等),而不依赖于事件(例如OnTextChange事件)。像“someTextboxControl.OldText”这样的东西会很完美!我认为它存储在viewstate中,需要通过自定义控件以某种方式获取它。有什么想法吗?Shrage提供的答案很有帮助,但需要额外的搜索才能使此解决方案起作用。我将他的代码放在我正在处理的页面名称空间中的代码后面。此外,我必须注册控件,并更改和更新有问题的控件 public class TextBoxEx:Sy
public class TextBoxEx:System.Web.UI.WebControls.TextBox
{
public string OldText { get; set; }
protected override bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
{
OldText = Text;
return base.LoadPostData(postDataKey, postCollection);
}
}
注册扩展textboxx控件;这就在page指令的正下方
<%@ Register TagPrefix="group" Namespace="ESM_Web_Portal" Assembly="ESM Web Portal" %>
Shrage提供的答案很有帮助,但需要一些额外的搜索才能使此解决方案起作用。我将他的代码放在我正在处理的页面名称空间中的代码后面。此外,我必须注册控件,并更改和更新有问题的控件 注册扩展textboxx控件;这就在page指令的正下方
<%@ Register TagPrefix="group" Namespace="ESM_Web_Portal" Assembly="ESM Web Portal" %>
protected void CheckForExistingPartNumber(object sender, ServerValidateEventArgs e)
{
CustomValidator cv = ((CustomValidator)sender);
TextBoxEx tb = (TextBoxEx)cv.Parent.FindControl(cv.ControlToValidate);
if (SupplyBLL.GetSupplyByPartNumber(e.Value) != null && tb.Text != tb.OldText)
{
e.IsValid = false;
}
}