如何检查所需的字段验证器是否在C#中被触发?

问题描述:

我使用了如下所示的禁用按钮代码,然后在按钮还发回时触发了必填字段.所以我想检查必填字段是否被触发,如下所示.

I have using like below disabling code for button then required fields firing when but also button goes to postback. so I want to check required field is fired or not like below.how?

protected void Page_Load(object sender, EventArgs e)
{
    btnPackageSubmit.Attributes.Add(
                      "onclick",
                      "this.disabled=true;"
                        + ClientScript.GetPostBackEventReference(btnPackageSubmit, "")
                    .ToString());
}

protected void btnPackageSubmit_Click(object sender, EventArgs e)
{
    System.Threading.Thread.Sleep(2000);
    if (reqPackNameAdd.IsValid == true
        || reqPackPeriodAdd.IsValid == true
        || reqPackPriceAdd.IsValid == true
        || regPackNameAdd.IsValid == true
        || regPackPrice.IsValid == true)
    {
        return;
    }
}

有一个名为IsValid的属性,它是页面类的一部分.


那也是我的第一个本能.但是快速测试表明(无论如何),它不起作用.可能是因为在JS代码运行之后发生了验证.

所以我这样做是这样的:

函数saveForm(c)
{
如果(Page_ClientValidate())
{
c.disabled = true;
警报(``是''); //我添加了此代码以验证按钮已被禁用
__doPostBack(c.id,``''); //您必须使用它,因为.click()不能在禁用的按钮上起作用.
}
There is a property called IsValid which is part of the page class.



That was my first instinct as well. But a quick test showed (me anyway) that it didn''t work. Probably because valiation occurs after the JS code runs.

So I did it like this:

function saveForm(c)
{
if (Page_ClientValidate())
{
c.disabled = true;
alert(''Yes''); // I added this to validate the button was getting disabled
__doPostBack(c.id, ''''); // you have to use this because .click() won''t work on a disabled button.
}