เครื่องมือตรวจสอบฟิลด์ Asp.net ไม่เริ่มทำงานหลังจากการอัพเดตเพจบางส่วน

ฉันมีกล่องข้อความ, RequiredFieldValidator และปุ่มภายใน Asp.net UpdatePanel เริ่มแรกคุณสมบัติ Enabled ของ RequiredFieldValidator ถูกตั้งค่าเป็น false ดังนั้นเมื่อคลิกปุ่มภายใน UpdatePanel การตรวจสอบจะไม่เริ่มทำงานในครั้งแรก อย่างไรก็ตาม ในตัวจัดการเหตุการณ์ของปุ่มภายใน UpdatePanel ฉันกำลังตั้งค่าของกล่องข้อความเป็น DateTime ขณะนี้ฉันกำลังลงทะเบียนสคริปต์เริ่มต้นโดยใช้วิธี ScriptManager.RegisterStartupScript เพื่อเปิดใช้งานเครื่องมือตรวจสอบที่กล่าวถึงข้างต้นบนไคลเอนต์โดยการเรียกใช้ฟังก์ชัน ValidatorEnable ฉันยังมีปุ่มที่อยู่นอก UpdatePanel เมื่อคลิกที่ RequiredFieldValidator ควรเริ่มทำงานหากกล่องข้อความว่างเปล่า อย่างไรก็ตาม หลังจากคลิกปุ่มภายใน UpdatePanel ค่าของกล่องข้อความจะถูกตั้งค่าเป็นเวลาวันที่ล่าสุดและเครื่องมือตรวจสอบความถูกต้องถูกเปิดใช้งาน แต่หลังจากลบข้อความออกจากกล่องข้อความและคลิกที่ปุ่มด้านนอกแผงการอัปเดต เครื่องมือตรวจสอบจะไม่เริ่มทำงาน

โปรดดูรหัสต่อไปนี้

โค้ดฝั่งไคลเอ็นต์:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:TextBox ID="txtSomeValue" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="rqdtxtSomeValue" runat="server" Enabled="false" ErrorMessage="*"
            ControlToValidate="txtSomeValue"></asp:RequiredFieldValidator>
        <asp:Button ID="btnGetValue" runat="server" Text="Get Current Date" OnClick="btnGetValue_Click" />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="btnSave" runat="server" Text="Save" />

โค้ดฝั่งเซิร์ฟเวอร์:

protected void btnGetValue_Click(object sender, EventArgs e)
{
    txtSomeValue.Text = DateTime.Now.ToString();

    string script = @"javascript:ValidatorEnable(document.getElementById('" + rqdtxtSomeValue.ClientID + "', true))";
    ScriptManager.RegisterStartupScript(btnGetValue, btnSave.GetType(), "btnGetValue_Click", script, true);
}

ใครช่วยบอกวิธีเปิดใช้งานเครื่องมือตรวจสอบฟิลด์อีกครั้งหลังจากอัปเดตหน้าบางส่วนได้ไหม


person surajnaik    schedule 13.06.2011    source แหล่งที่มา


คำตอบ (1)


คุณแน่ใจหรือไม่ว่าเครื่องมือตรวจสอบความถูกต้องถูกเปิดใช้งานหลังจากที่ btnGetValue ส่งคืนและอัปเดต UpdatePanel คุณจะทดสอบว่าเปิดใช้งานเครื่องมือตรวจสอบความถูกต้องได้อย่างไร คุณได้ลองตั้งค่าเครื่องมือตรวจสอบให้เปิดใช้งานในโค้ดของคุณแล้วหรือยัง?

protected void btnGetValue_Click(object sender, EventArgs e) {
    txtSomeValue.Text = DateTime.Now.ToString();

    rqdtxtSomeValue.Enabled = true;
    ScriptManager.RegisterStartupScript(btnGetValue, btnSave.GetType(), "btnGetValue_Click", script, true); 
}
person Chris Porter    schedule 23.06.2011