DevExpress การใช้ custom validation โดยกดปุ่ม aspxbutton แล้วสั่งให้ client validation
โดยปกติแล้ว เราสามารถใช้ validation ของ tools DevExpress แต่ละ control ที่เลือกได้ แต่บางกรณีเราอาจจะไม่สามารถใช้ได้ เช่นต้องเลือกอันนี้ก่อน แล้วค่อยไปตรวจสอบ แบบนี้ต้องใช้ custom validation ดังภาพตัวอย่าง
จากภาพด้านบน ตรงปุ่มกดเราก็ใส่ <ClientSideEvents Click=”OnValidation” /> ลงไปดังโค้ด
<dx:ASPxButton Theme=”SoftOrange” CssClass=”btn” AutoPostBack=”false” OnClick=”btnSubmit_Click” Width=”200px” ID=”btnSubmit” runat=”server” Text=”บันทึก” CausesValidation=”True”>
<ClientSideEvents Click=”OnValidation” />
</dx:ASPxButton>
แล้วพวก aspxcombobox
<!—Input Data–>
<div class=”form-group has-success”>
<label class=”control-label” for=”inputSuccess”><i class=”fa fa-check”></i> วันที่เริ่มต้น (ตามใบสัญญารับทุน):</label>
<br /><dx:ASPxDateEdit ClientInstanceName=”project_start_quata” CssClass=”form-control” ID=”project_start_quata” EditFormatString=”dd/MM/yyyy” DisplayFormatString=”dd/MM/yyyy” runat=”server”>
<ValidationSettings ValidateOnLeave=”False” EnableCustomValidation=”True”>
</ValidationSettings>
</dx:ASPxDateEdit>
</div>
<!—Close Input Data–>
ตรง java script ประกาศไว้ด้านบน
<script type=”text/javascript”>
function OnValidation(s, e) {
var cb_project_status = cb.GetText();
var dt1 = project_start_quata.GetText();
var dt2 = project_end_quata.GetText();
var dt3 = project_finish_date.GetText();
console.log(cb_project_status);
if (cb_project_status == “กำลังดำเนินการ”) {
if (dt1 == “”) {
project_start_quata.SetIsValid(false);
project_start_quata.SetErrorText(‘กรุณากรอก วันที่เริ่มต้น (ตามใบสัญญารับทุน)’);
}
if (dt2 == “”) {
project_end_quata.SetIsValid(false);
project_end_quata.SetErrorText(‘กรุณากรอก วันที่สิ้นสุด (ตามใบสัญญารับทุน)’);
}
}
else {if (dt1 == “”) {
project_start_quata.SetIsValid(false);
project_start_quata.SetErrorText(‘กรุณากรอก วันที่เริ่มต้น (ตามใบสัญญารับทุน)’);
}
if (dt2 == “”) {
project_end_quata.SetIsValid(false);
project_end_quata.SetErrorText(‘กรุณากรอก วันที่สิ้นสุด (ตามใบสัญญารับทุน)’);
}
if (dt3 == “”) {
project_finish_date.SetIsValid(false);
project_finish_date.SetErrorText(‘กรุณากรอก วันที่ดำเนินการแล้วเสร็จ’);
}}
}
</script>