Я поддерживаю сайт ASP.NET, и я пытался заставить диалоги выглядеть лучше, используя jQuery.В веб-приложении есть класс C #, называемый MessageBox, который позволяет показывать сообщения клиенту со стороны сервера .... по существу, в C # в коде aspx, если какая-то логика «не вычисляет», вы можете просто MessageBox.Show ('your error message');
Так как класс MessageBox, по-видимому, просто «внедряет» javascript ... «alert (your message)», я попытался изменить javascript на вызов диалога jquery:
html: стандартное диалоговое окно примера jQuery ... (намеренно обрезать теги ... просто чтобы показать пример кода ... здесь, вероятно, есть реальный способ сделать это ... но этомой первый пост ...)
div id="dialog" title="Example dialog">
p>Some text that you want to display to the user./p>
/div>
jQuery: я закомментировал Alert и подставил: sb.Append ("$ ('dialog'). dialog ('open');");
while( iMsgCount-- > 0 )
{
sMsg = (string) queue.Dequeue();
sMsg = sMsg.Replace( "\n", "\\n" );
sMsg = sMsg.Replace( "\"", "'" );
//sb.Append( @"alert( """ + sMsg + @""" );" );
**** sb.Append("$('dialog').dialog('open');"); ****
}
Я ожидал, что это откроет диалоговое окно, настроенное в HTML, но ничего не показывает.Я полагал, что javascript - это javascript ... и что вместо вызова jQuery вместо ручного оповещения не будет иметь значения ... однако очевидно, что есть разрыв.
Есть мысли о том, как решить эту проблему?Или о каких-либо лучших реализациях, о которых я не знаю?
Спасибо за любую помощь ... Я включил полный класс MessageBox ниже.
Curt.
public class MessageBox
{
private static Hashtable m_executingPages = new Hashtable();
private MessageBox(){}
public static void Show( string sMessage )
{
if( !m_executingPages.Contains( HttpContext.Current.Handler ) )
{
Page executingPage = HttpContext.Current.Handler as Page;
if( executingPage != null )
{
Queue messageQueue = new Queue();
messageQueue.Enqueue( sMessage );
m_executingPages.Add( HttpContext.Current.Handler, messageQueue );
executingPage.Unload += new EventHandler( ExecutingPage_Unload );
}
}
else
{
Queue queue = (Queue) m_executingPages[ HttpContext.Current.Handler ];
queue.Enqueue( sMessage );
}
}
private static void ExecutingPage_Unload(object sender, EventArgs e)
{
Queue queue = (Queue) m_executingPages[ HttpContext.Current.Handler ];
if( queue != null )
{
StringBuilder sb = new StringBuilder();
int iMsgCount = queue.Count;
sb.Append( "" );
string sMsg;
while( iMsgCount-- > 0 )
{
sMsg = (string) queue.Dequeue();
sMsg = sMsg.Replace( "\n", "\\n" );
sMsg = sMsg.Replace( "\"", "'" );
sb.Append( @"alert( """ + sMsg + @""" );" );
}
sb.Append( @"" );
m_executingPages.Remove( HttpContext.Current.Handler );
HttpContext.Current.Response.Write( sb.ToString() );
}
}
}