۱۳۸۸/۰۵/۰۹

نمايش پيغامي به كاربر در هنگام استفاده از MS Ajax


مطلب "نمايش يك پيغام به كاربر در ASP.Net" را احتمالا به خاطر داريد. اين روش در حالت postback كامل و يا در حالت page_load بدون مشكل كار مي‌كند. اما اگر در حال استفاده از آپديت پنل MS Ajax باشيم، ديگر كار نخواهد كرد چون تنها قسمتي از صفحه به روز رساني مي‌شود و يك postback كامل رخ نمي‌دهد تا از شيء صفحه جهت تزريق اسكريپت خود بتوانيم استفاده نمائيم. خوشبختانه طراحان MS Ajax به اين مورد هم توجه داشته‌اند و متد RegisterStartupScript را جزئي از كلاس ScriptManager قرار داده‌اند. براي مثال اگر نياز باشد در پايان عمليات يك متد كه از آپديت پنل كمك مي‌گيرد، يك alert نمايش داده شود مي‌توان از متد زير استفاده كرد:

void jsCall(string alert)
{
string script = @"alert('" + alert + "');";
ScriptManager.RegisterStartupScript(this, this.GetType(), "jsCall", script, true);
}

با توجه به اين نكته، مطلب "نمايش يك پيغام به كاربر در ASP.Net" را به صورت زير نيز مي‌توان با MS Ajax‌ سازگار كرد:

if (page != null)
{
ScriptManager sMgr = ScriptManager.GetCurrent(page);
if (sMgr != null)
{
ScriptManager.RegisterStartupScript(page, page.GetType(),
"script" + new Guid().ToString("N"),
scriptBlock, false);
}
else
//همان روش قبلي
...