متغیرهای جاوا اسکریپت و اشیاء در PostBack با ASP.Net
با سلام در این مقاله توضیح خواهیم داد که چگونه می توان متغیرهای ایجاد شده در کد جاوا اسکریپت را در پشت PostBacks ایجاد کرد. در طی PostBack، صفحه کامل بارگیری می شود و از این رو تمام متغیرهای ایجاد شده در جاوا اسکریپت از بین می روند بنابراین مثال های مختلفی را نشان می دهیم که چگونه می توانید اشیاء جاوا، متغیرها و داده های جاوااسکریپت خود را بدون استفاده از ViewState در پشت PostBacks ها حفظ کنید.
Client side
Client side یک فیلد پنهان array_store برای ذخیره مقادیر و فرستادن آنها به سرور، دکمه btnSubmit برای انجام یک PostBack به سرور و یک array_disp HTML SPAN برای نمایش مقادیر حفظ شده دارد .
در رویداد پنجره بارگیری جاوا اسکریپت، به سادگی محتویات فیلد پنهان را نمایش می دهم. هنگامی که دکمه کلیک می شود، ابتدا تابع جاوا اسکریپت UpdateArray را فراخوانی می کند که یک شیء آرایه ایجاد می کند، زمینه پنهان خالی است و سپس یک آیتم به آن اضافه و آیتم های آرایه به رشته تبدیل و در array_store ذخیره می شوند .
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
var array_store;
window.onload = function () {
array_store = document.getElementById("array_store");
document.getElementById("array_disp").innerHTML = array_store.value;
};
function UpdateArray() {
var arr;
if (array_store.value == "") {
arr = new Array();
} else {
arr = array_store.value.split(",");
}
arr.push((arr.length + 1).toString());
array_store.value = arr.join(",");
};
</script>
</head>
<body>
<form id="form1" runat="server">
<span id="array_disp"></span>
<br />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="UpdateArray()" />
<input type="hidden" id="array_store" name = "ArrayStore" value = '<%=this.ArrayStore %>' />
</form>
</body>
</html>
server side
در server side یک متغیر رشته محافظت ایجاد کرده ایم تا بتوان آن را در صفحه ASPX مشاهده کرد. این متغیر با مقدار فیلد پنهان array_store با استفاده از مجموعه فرم درخواست تنظیم شده است.
C #
protected string ArrayStore = "";
protected void Page_Load(object sender, EventArgs e)
{
this.ArrayStore = Request.Form["ArrayStore"];
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Me.ArrayStore = Request.Form("ArrayStore")
End Sub
سپس مقدار متغیر رشته به فیلد پنهان همانطور که در زیر نشان داده شده است، با استفاده از تگ های درون خطی تنظیم می شود .
<input type="hidden" id="array_store" name = "ArrayStore" value = '<%=this.ArrayStore %>' />
بنابراین بدون استفاده از کنترل ViewState یا سرور، توضیح دادیم که چگونه می توانیم اشیاء و متغیرهای جاوا اسکریپت را در ASP.Net حفظ و نگهداریم