วันพุธที่ ๗ ตุลาคม พ.ศ. ๒๕๕๒

ASP.NET ส่ง array จาก Code Behind Page ไปที่ javascript

ปกติเวลาเราเขียน javascript ที่หน้า aspx บางครั้งเราอาจจะต้องการข้อมูลที่อยู่ใน Code Behind Page เช่น clientId (ค่อนข้างใช้บ่อย ถ้ามีการใช้ MasterPage) เช่น

<script type="text/javascript" id="MainScript">
// <![CDATA[
var employeeTextBoxId = "<%=txtEmployee.ClientId%>";
var movementCount = "<%=EmploteeMovements.Count%>";
// ]]>
</script>

แต่ทีนี้ถ้าต้องการข้อมูลที่เป็น Array ละ ก็ไม่ยากครับ สร้าง Function ที่ฝั่ง Code Behind Page ขึ้นมาเพื่อเอา array มาต่อกันเป็น string โดยให้มีตัว separate (ในตัวอย่างใช้ ;) จากนั้นฝั่ง javascript ก็ไปสั่ง split อีกที

Public employeeName(5) As String

Protected Function GetEmployees() As String

Dim sb As New StringBuilder

For i As Integer = 0 To employeeName.Length - 1
sb.Append(employeeName(i) & ";")
Next

sb.Remove(sb.Length - 1, 1)
Return sb.ToString

End Function


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

employeeName(0) = "Nithi"
employeeName(1) = "Paetree"
employeeName(2) = "Ple"
employeeName(3) = "Suvimol"
employeeName(4) = "Weekit"
employeeName(5) = "Sasawin"

End Sub



<script type="text/javascript" id="MainScript">

// <![CDATA[
var a = "<%=GetEmployees()%>";
var empArray = a.split(";");
// ]]>

</script>



เท่าที่ลองดูหลายๆแบบ วิธีนี้ง่ายสุดครับ (แต่อาจไม่ดีสุดนะ)

ไม่มีความคิดเห็น: