اين مقاله را با يک مثال آغاز مي کنم. يک کنترل UpdatePanel به صفحه اضافه کنيد وسپس داخل UpdatePanel ، يک Button و يک Label اضافه نماييد.
در نتيجه شکل زير را مشاهده مي نماييد. (البته من مقداري Style هم به صفحه اضافه کرده ام)
در رويداد کليک مربوط به کنترل Button قطعه کد زير را بنويسيد.
protected void Button1_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);
Label1.Text = DateTime.Now.ToString();
}
|
همانطور که ملاحظه مي کنيد، با کليک شدن Button، ابتدا 3 ثانيه تاخير به وجود آورده ايم و سپس تاريخ و زمان را در کنترل Label چاپ کرده ايم.
وقتي يک کاربر عادي ، روي Button کليک مي کند، مشاهده مي نمايد که به مدت 3 ثانيه هيچ اتفاق خاصي نمي افتد و سپس تاريخ نمايش داده مي شود.
در برنامه هاي کاربردي، بسيار پيش مي آيد که عمليات سمت سرور مقداري زمان بر، مي باشد. مثلا قرار است اطلاعات از ديتابيس خوانده شود و يا اعمال ديگر.
براي کاربراني که به Postback شدن صفحات عادت داشته اند، اين موضوع چندان خوش آيند نمي باشد و امکان دارد که پس از کليک کردن Button، هنگامي که مشاهده کردند پس از طي چند ثانيه اتفاق خاصي نيفتاده است، مجددا Button را کليک کنند (در حاليکه در حال حاضر اطلاعات در سمت سرور درحال پردازش مي باشد)
پس نياز است هنگامي که هنگامي که اطلاعات در سمت سرور در حال پردازش مي باشد، به نحوي اين موضوع را به کاربر نشان دهيم.
بدين منظور از کنترل UpdateProgress استفاده مي شود.
اکنون قصد داريم که در مدت زماني که اطلاعات در سمت سرور در حال پردازش مي باشند، يک تصوير Loading به شکل زير را به کاربر نمايش دهيم.
کنترل UpdateProgress را به صفحه اضافه کنيد. به نماي Markup رفته و کد آن را به شکل زير تغيير دهيد.
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<img src="25-1.gif" />
Updating Page ......
</ProgressTemplate>
</asp:UpdateProgress>
|
مشاهده مي نماييد که کنترل UpdateProgress داراي تگي به نام ProgressTemplate مي باشد که در داخل اين تگ، محتوايي که قرار است هنگام انجام پردازش اطلاعات سمت سرور به کاربر نمايش دهيم، قرار مي گيرد.
ما در اينجا يک تصوير Loading به همراه عبارت Updating page را قرار است به کاربر نمايش دهيم.
خوب، کار تمام است. صفحه را اجرا کنيد و نتيجه کار را مشاهده نماييد.
موفق باشيد.
سورس انجام شده در اين مقاله از لينک بالاي صفحه قابل دريافت مي باشد.