none
ASP.NET JavaScript FAQ: วิธีส่งผ่านค่าระหว่าง Code Behind และ JavaScript ฝั่ง client RRS feed

คำตอบ



  • การส่งค่าจากCode Behind ไปยังJavaScript ฝั่งclient:



    เราสามารถใช้ <%=variable %> ในโค้ด JavaScript เพื่อส่งค่าตัวแปรของฝั่ง server ใน Code Behind

    หมายเหตุ สมาชิกใน field จะต้องไม่เป็นnon-private ในCode Behind ถ้าอยู่ใน<% %>



    ตัวอย่างเช่น เราสามารถใช้โค้ด JavaScript:
    alert("<%=DateTime.Now.ToString() %>");
    เพื่อแสดง
    server time

    หรืออีกวิธีหนึ่ง คือ การใช้
    ScriptManager เพื่อลงทะเบียนโค้ดของ JavaScript ใน Code Behind:

    string strScript = "alert('" + DateTime.Now.ToString() + "')";
    ScriptManager.RegisterStartupScript(Page,this.GetType(), "strScript", strScript, true);



    การส่งค่าจาก JavaScript ฝั่ง client ไปยัง Code Behind:



    เราสามารถใช้ Hidden Control ในการส่งค่าได้ ดังนี้



    HTML:

    <scripttype="text/javascript">
    function clientButtonClick()
    {
     
    var str="value";
      document
    .getElementById("Hidden1").value=str;
    }
    </script>
    <body>
       
    <formid="form4"runat="server">
       
    <div>
           
    <inputid="Hidden1"type="hidden"runat="server" />
           
    <asp:ButtonID="Button2"runat="server"OnClientClick="clientButtonClick()"Text="Button" 
    onclick="Button1_Click" />
       
    </div>
       
    </form>
    </body>



    Code Behind:



    protected void Button1_Click(object sender, EventArgs e)
    {
       
    Response.Write(Hidden1.Value);
    }



    เราสามารถเรียกคืนค่าได้จาก
    Hidden control ใน Code Behind หลังจากการจัดเก็บตัวแปรไว้ใน Hidden control โดยใช้ JavaScript

    'OnClientClick="clientButtonClick()"' จะทำการ execut ก่อนที่ฝั่ง server จะ click event (“onclick="Button1_Click"”)



    ฟอรัมที่เกี่ยวข้อง

    http://forums.asp.net/p/1211504/2139016.aspx#2139016



    Supa Sethasiripong [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • ทำเครื่องหมายเป็นคำตอบโดย supa_sModerator 27 มีนาคม 2555 3:33
    26 มีนาคม 2555 6:53
    ผู้ดูแล