C# 验证+;中继器+;提示文本-验证问题

C# 验证+;中继器+;提示文本-验证问题,c#,jquery,asp.net,C#,Jquery,Asp.net,我有一个中继器,在中继器内我有一个文本框和按钮(一起在一个ASCX中)。文本框预先填充了提示文本,该文本在焦点处被清除 我的问题是,如果一个文本框由用户填充,并且用户单击submit按钮,则提示文本会在其他控件中提交 我尝试进行自定义验证,但验证器尝试验证转发器内的所有控件,如果未触及提示文本,其他控件仍包含提示文本 因为这是ASCX,所以我不想使用服务器端解决方案来强制我更改承载控件的页面的ItemDataBound事件的代码 是否有任何客户端解决方案或服务器端解决方案我仍然可以封装在我的AS

我有一个中继器,在中继器内我有一个文本框和按钮(一起在一个ASCX中)。文本框预先填充了提示文本,该文本在焦点处被清除

我的问题是,如果一个文本框由用户填充,并且用户单击submit按钮,则提示文本会在其他控件中提交

我尝试进行自定义验证,但验证器尝试验证转发器内的所有控件,如果未触及提示文本,其他控件仍包含提示文本

因为这是ASCX,所以我不想使用服务器端解决方案来强制我更改承载控件的页面的ItemDataBound事件的代码


是否有任何客户端解决方案或服务器端解决方案我仍然可以封装在我的ASCX中?

如果您使用公共属性将数据从ASCX传递到父页面进行处理,您可以解释那里的重影文本

public property TextValue
{
    get
    {
        if (Textbox.Text != "Ghost Text")
        {
            return Textbox.Text;
        }
    }
}
对于客户端,您可以绑定到按钮的click事件,并清除与ghost文本值匹配的文本

$(function() {
    $('#btnSubmit').click(function() {
        var txt = $(this).siblings('txtValue');
        if (txt.val() == 'Please Enter Your Name')
           txt.val('');
    });
})

您可以使用ScriptManager从ASCX注册脚本。

这是事实,但我也希望在客户端进行验证。在我工作的地方,只有服务器端验证是一个很大的禁忌。你可以使用UpdatePanel来减轻客户端验证的负担,或者在前端使用一个带有InitialValue设置的Validator控件。这样行吗?