ฉันมีกล่องข้อความ, 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);
}
ใครช่วยบอกวิธีเปิดใช้งานเครื่องมือตรวจสอบฟิลด์อีกครั้งหลังจากอัปเดตหน้าบางส่วนได้ไหม