ASP.Net中的消息框和焦点方法 [英] Message box and Focus method in ASP.Net

查看:74
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆