ASP.NET - Pagpapanatili ng ViewState
- หน้าก่อนหน้า Form ng WebForms
- หน้าต่อไป TextBox ng WebForms
Sa pamamagitan ng pagpapanatili ng mga estado ng panoorin ng mga bagay sa web porma, maaari ninyong maiwasan ang malaking bilang ng pagsusulit ng kodigo.
Pagpapanatili ng ViewState (Mga Estado ng Panoorin)
Kapag ang porma sa classic ASP ay isinasubmit, ang lahat ng halaga ng porma ay mawawala. Isipin natin na inyong isinubmit ang isang porma na may maraming impormasyon, at ang server ay ibinalik ang isang error. Kailangan ninyong bumalik sa porma at itama ang impormasyon. Pinindot ninyo ang pindutan ng bumalik, at anong mangyayari... Ang lahat ng halaga ng porma ay mawawala, at kailangan ninyong muling simulan ang lahat. Ang site ay hindi nagpapanatili ng iyong ViewState.
Kapag ang porma sa ASP .NET ay isinasubmit, ang porma ay muling papakita kasama ang lahat ng halaga ng porma. Paano ginawa ito? Ito ay dahil sa pagpapanatili ng ViewState ng ASP .NET. Ang ViewState ay nagtutukoy ng estado ng pahina kapag ito ay isinasubmit sa server. Sa pamamagitan ng paglagay ng isang nakatagong area sa bawat <form runat="server"> kontrol sa bawat pahina, maaari naming tukuyin ang estado ng pahina. Ang pinagmulang kodigo ay maaring maging tulad nito:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....some code </form>
Ang pagpapanatili ng ViewState ay ang default na setting ng ASP.NET Web porma. Kung hindi ninyo gusto na panatilihin ang ViewState, ilagay ang instruction sa itaas ng .aspx na pahina: <%@ Page EnableViewState="false" %> o magdagdag ng attribute sa anumang kontrol: EnableViewState="false".
Mangyaring tingnan ang .aspx na file sa ibaba. Ito ay naglalarawan ng lumang paraan ng pagpatakbo. Kapag inyong pinindot ang pindutan ng sumite, ang halaga ng porma ay magiging wala:
<html> <body> <form action="demo_classicasp.aspx" method="post"> ชื่อคุณ: <input type="text" name="fname" size="20"> <input type="submit" value="Submit"> </form> <% dim fname fname=Request.Form("fname") If fname<>"" Then Response.Write("Hello " & fname & "!") End If %> </body> </html>
นี่คือวิธีใหม่ของ ASP .NET เมื่อคุณกดปุ่มส่ง ค่าฟอร์มจะไม่หายไป:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> ชื่อคุณ: <asp:TextBox id="txt1" runat="server" /> <asp:Button OnClick="submit" Text="Submit" runat="server" /> <p><asp:Label id="lbl1" runat="server" /></p> </form> </body> </html>
แสดงตัวอย่างนี้ (กรุณาคลิกที่ "ดูเอกสารต้นฉบับ" ในกรอบด้านขวา คุณจะเห็นว่า ASP .NET ได้เพิ่มฟีลด์ซ่อนไว้ในฟอร์ม เพื่อที่จะเก็บ ViewState ไว้ได้)
- หน้าก่อนหน้า Form ng WebForms
- หน้าต่อไป TextBox ng WebForms