عموما در برنامههاي وب مرسوم است كه پيغام به كاربر را در همان لابلاي html صفحه نمايش ميدهند. مثلا يك برچسب و سپس تنظيم متن آن در كد برنامه به صورت پويا.
با استفاده از پلاگينهاي jQuery اينكار را به صورت شكيلتري ميتوان انجام داد. براي مثال:
پلاگين كم حجمي براي اين منظور موجود است به نام jQuery Notice (يكي از چند ده نمونه موجود)
<script type="text/javascript">
$(document).ready(function()
{
jQuery.noticeAdd({
text: 'پيغامي به كاربر',
stay: false
});
});
</script>
<div id="myElement" style="position: absolute">This stays at the top</div>
با استفاده از jQuery اينكار به صورت زير قابل انجام است:
<script type="text/javascript">
$(document).ready(function()
{
$(window).scroll(function() {
$('#myElement').css('top', $(this).scrollTop() + "px");
});
});
</script>
ولي اين روش جهت نمايش پيغامي پويا به كاربر مشكل دارد.
نياز است به ازاي هر پيغام پويا يكبار به نحوي اين اسكريپت به صفحه تزريق شود كه روش انجام كار در ASP.Net به صورت زير ميتواند باشد:
using System;
using System.Web.UI;
using System.Web;
public class CAddJqueryNotice
{
/// <summary>
/// نمايش يك پيغام بر اساس پلاگين نوتيس
/// </summary>
/// <param name="title">عنوان</param>
/// <param name="msg">پيغام</param>
/// <param name="rtl">راست به چپ؟</param>
/// <param name="duration">مدت زمان نمايش</param>
/// <param name="autoHide">به صورت خودكار بسته شود؟</param>
public static void Show(string title, string msg, bool rtl, int duration, bool autoHide)
{
string scriptBlock
= string.Format(@"<script type=""text/javascript"">
$(document).ready(function() {{
jQuery.noticeAdd({{
text: '<b>{0}</b><br/><div align=left dir={1}>{2}</div>',
stay: {3},
stayTime: {4}
}});
}});
</script>",
title,
(rtl ? "rtl" : "ltr"),
msg,
(autoHide ? "false" : "true"),
duration);
if (HttpContext.Current == null || HttpContext.Current.Handler == null) return;
Page page = HttpContext.Current.Handler as Page;
if (page != null)
page.ClientScript.RegisterStartupScript(
page.GetType(),
"script" + new Guid().ToString("N"),
scriptBlock,
false);
}
}
براي آزمايش آن يك دكمه را در صفحه قرار داده و در روال رخداد گردان كليك آن كد زير را اضافه كنيد:
CAddJqueryNotice.Show( "لطفا دوباره سعي كنيد", "مشكلي رخ داده است", true, 2000, true);
بديهي است قبل از استفاده از كد فوق، بايد چند سطر زير را به هدر master page سايت خود اضافه كنيد:
<script src="jquery-1.3.2.js" type="text/javascript"></script>
<link href="jquery.notice.css" type="text/css" media="screen" rel="stylesheet" />
<script src="jquery.notice.js" type="text/javascript"></script>