PDA

View Full Version : سوال: مسیج باکس در ای اس پی



adelalireza
جمعه 22 بهمن 1389, 15:47 عصر
در سی شارپ صفحه وبی داریم شامل یک تکست باکس و یک باتن.میخواهیم کدی بنویسیم که اگر کاربر روی باتن کلیک کرد مسیج باکسی نمایش داده شود که آیا میخواهید به تکست باکس پنج واحد اضافه کنید یا نه؟اگر کاربر تایید کرد این کار انجام شود .لطفان مرا راهنمایی کنید.

AmirHarirbafan
جمعه 22 بهمن 1389, 20:40 عصر
زبان ASP.Net چیزی به نام MessageBox نداره(در اصل هیچ زبان سمت سروری فکر نکنم MessageBox داشته باشه)
برای اینکار شما باید از دستور Confirm در جاوااسکریپت استفاده نماییم

spinoza
جمعه 22 بهمن 1389, 22:01 عصر
اين روش 100% جواب ميده :
1- شما بايد اين كد رو در زير كلاس پيج اضافه كنيد :




public class MessageBox

{
private static Hashtable m_executingPages = new Hashtable();
private MessageBox() { }
public static void Show(string sMessage)
{
// If this is the first time a page has called this method then

if (!m_executingPages.Contains(HttpContext.Current.Ha ndler))
{
// Attempt to cast HttpHandler as a Page.

Page executingPage = HttpContext.Current.Handler as Page;
if (executingPage != null)
{
// Create a Queue to hold one or more messages.

Queue messageQueue = new Queue();
// Add our message to the Queue

messageQueue.Enqueue(sMessage);
// Add our message queue to the hash table. Use our page reference

// (IHttpHandler) as the key.

m_executingPages.Add(HttpContext.Current.Handler, messageQueue);
// Wire up Unload event so that we can inject

// some JavaScript for the alerts.

executingPage.Unload += new EventHandler(ExecutingPage_Unload);
}
}
else

{
// If were here then the method has allready been

// called from the executing Page.

// We have allready created a message queue and stored a

// reference to it in our hastable.

Queue queue = (Queue)m_executingPages[HttpContext.Current.Handler];
// Add our message to the Queue

queue.Enqueue(sMessage);
}
}

// Our page has finished rendering so lets output the

// JavaScript to produce the alert's

private static void ExecutingPage_Unload(object sender, EventArgs e)
{
// Get our message queue from the hashtable

Queue queue = (Queue)m_executingPages[HttpContext.Current.Handler];
if (queue != null)
{
StringBuilder sb = new StringBuilder();
// How many messages have been registered?

int iMsgCount = queue.Count;
// Use StringBuilder to build up our client slide JavaScript.

sb.Append("<script language='javascript'>");
// Loop round registered messages

string sMsg;
while (iMsgCount-- > 0)
{
sMsg = (string)queue.Dequeue();
sMsg = sMsg.Replace("\n", "\\n");
sMsg = sMsg.Replace("\"", "'");
sb.Append(@"alert( """ + sMsg + @""" );");
}
// Close our JS

sb.Append(@"</script>");
// Were done, so remove our page reference from the hashtable

m_executingPages.Remove(HttpContext.Current.Handle r);
// Write the JavaScript to the end of the response stream.

HttpContext.Current.Response.Write(sb.ToString());
}
}
}

2-با دستور message.show("**"(; هر پيغامي را هشدار دهيد
البته خطها قاتي پاتي شده اين ديگه باشه به عهده خودتون بازم ميگم كاملا جواب ميدههههه

karim orooji
شنبه 23 بهمن 1389, 13:49 عصر
با سلام
شهادت امام حسن عسگری(ع) رو به به شما تمام شیعیان و عاشقان آنحضرت تسلیت عرض مینمایم.

طبق گفته دوست عزیزمون AmirHarirbafan برای اینکار شما باید از دستور Confirm در جاوااسکریپت استفاده نماییم
برای این در قسمت onclientclick دکمه کافیه این کد رو بنویسی

return confirm('متن دلخواه مسیج');
و در دکمه برنامه ات رو بنویسی و زمانی که دکمه رو بزنی براتی مسیج باکسی که دو دکمه دار که اگر ok رو بزنی کدی که در داخل دکمه است برای شما اجرا خواهد شد


موفق باشی