ASP.Net中的消息框和焦点方法 [英] Message box and Focus method in ASP.Net
本文介绍了ASP.Net中的消息框和焦点方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好,
我创建事件:
Hi all,
i create event:
protected void btnCapNhatLai_Click(object sender, EventArgs e)
{
if (txtPhanQuyen.Text == "")
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "Alert", "Invalid value for role code!", true);
txtPhanQuyen.Focus();
return;
}
}
我为txtPhanQuyen填写了空文本,但看不到消息框和文本框无法聚焦.
请帮我解决!
I fill empty text for txtPhanQuyen but i can not see message box and textbox not focus.
Please help me solve!
推荐答案
试试这个.
这是显示弹出消息的肮脏技巧.我知道那里
有一些好的编码想法...
Hi,
Try this.
This is a dirty trick to show popup message. I know that there
are some good coding idea...
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.Handler))
{
// 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);
}
}
public static void Show(System.Web.UI.Page page, string msg)
{
ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "clientScript", "javascript:alert(''" + msg + "'');", true);
}
// 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.Handler);
// Write the JavaScript to the end of the response stream.
HttpContext.Current.Response.Write(sb.ToString());
}
}
}
举个例子:
To call this example:
if (txtPhanQuyen.Text == "")
{
MessageBox.Show(this, "Invalid value for role code!");
txtPhanQuyen.Focus();
return;
}
问候,
代数
Regards,
Algem
<script>
function fnalert(message)
{
alert(message);
return true;
}
</script>
//在后面的代码中
// in code behind
protected void btnCapNhatLai_Click(object sender, EventArgs e)
{
if (txtPhanQuyen.Text == "")
{
string script = "<script language='javascript'>fnalert('Invalid value for role code!')</script>";
ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(), script, false);
}
}
这篇关于ASP.Net中的消息框和焦点方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文