|
|
|
สอบถามเกี่ยวกับการนำข้อมูล วัน/เดือน/ปี จากฐานข้อมูล มากำหนด minDate ใน Jquery Datepicker |
|
|
|
|
|
|
|
วัตถุประสงค์: กำหนด minDate ใน Datepicker โดยนำข้อมูล วัน/เดือน/ปี ขึ้นมาจากฐานข้อมูล
แนวคิด: โดยปกติ ถ้าจะกำหนด minDate ก็จะเขียนโค้ดในรูปแบบนี้
Code (JavaScript)
minDate: new Date(2011, 8, 1)
แต่ วัน/เดือน/ปี ที่ดึงขึ้นมาจากฐานข้อมูลแสดงอยู่ใน TextBox เป็น Format dd/MM/yyyy และเป็นปี พ.ศ.
*** ตัวอย่าง: 01/09/2554 ***
ผมก็เลยเขียนฟังก์ชั่นในการแปลง Format ในอยู่ในรูปแบบ yyyy, MM, dd และเป็นปี ค.ศ.
*** ตัวอย่าง: 2011, 8, 1 ***
ปัญหา: ผมจะเรียกใช้ฟังก์ชั่น conDate() ได้อย่างไร? และใช้ event ไหน? ลองเขียนโค้ดแบบด้านล่างมันก็ไม่ทำงาน
อยากให้มันทำงานทันทีเมื่อมีข้อมูล Load เข้าไปใน Textbox หรือเมื่อมีการเปลี่ยน วัน/เดือน/ปี ใหม่
Code (C#)
txtInitialDateServiced.Attributes.Add("onBlur", "conDate(this)");
txtInitialDateServiced.Attributes.Add("onChange", "conDate(this)");
txtInitialDateServiced.Attributes.Add("onLoad", "conDate(this)");
ตัว TextBox ได้ถูก Enable = False ไว้เพื่อไม่ให้แก้ไขข้อมูล ไม่ทราบว่าจะเกี่ยวกันไหม ที่มันไม่ทำงาน?
แต่ถ้าเปิดให้คีย์ข้อมูล และใช้ Event onChange ปรากฎว่าก็สามารถทำงานได้ตามปกติ
Code (JavaScript)
<script type="text/javascript">
$function conDate(obj) {
var Date = obj.value;
Date += '';
x = Date.split('/');
x1 = x[0];
x2 = x[1] - 1;
x3 = x[2] > 2500 ? x[2] - 543 : x[2];
obj.value = x3 + ', ' + x2 + ', ' + x1;
});
</script>
<script type="text/javascript">
$(function () {
var d = new Date();
var toDay = d.getDate() + '/' +
(d.getMonth() + 1) + '/' +
(d.getFullYear() + 543);
var minDay = conDate("#<%=txtInitialDateServiced.ClientID %>");
$.datepicker.setDefaults({
dateFormat: 'dd/mm/yy',
isBuddhist: true,
defaultDate: toDay,
dayNames: ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัสบดี', 'ศุกร์', 'เสาร์'],
dayNamesMin: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'],
monthNames: ['มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'],
monthNamesShort: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'],
maxDate: toDay,
showAnim: 'slideDown'
});
/* Datepicker Option: http://jqueryui.com/demos/datepicker/#options */
$("#<%=txtSearchStartDate.ClientID %>").datepicker();
$("#<%=txtSearchEndDate.ClientID %>").datepicker();
$("#<%=txtSearchIssueFromDate.ClientID %>").datepicker();
$("#<%=txtSearchIssueToDate.ClientID %>").datepicker();
// var min = new Date(2008, 11 - 1, 1)
$("#<%=txtStartDate.ClientID %>").datepicker({ minDate: new Date(minDay) });
$("#<%=txtEndDate.ClientID %>").datepicker();
});
</script>
หมายเหตุ: ผมเพิ่งจะศึกษา JavaScript ขอคำแนะนำด้วยนะครับ ขอบคุณครับ
Tag : Ms SQL Server 2008, JavaScript, jQuery, C#, VS 2010 (.NET 4.x)
|
ประวัติการแก้ไข 2011-09-01 16:13:41 2011-09-01 16:21:16 2011-09-01 16:22:51
|
|
|
|
|
Date :
2011-09-01 16:12:47 |
By :
Marcuz |
View :
1466 |
Reply :
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|