小生最近在研究一个类似于遮罩层的js脚本,在asp.net中使用html控件可以很容易的调用到该js脚本中的函数,并有响应效果;我想在服务器控件(Button)的单击事件中实现同样的效果,但效果不是很理想,我想到的两种方法都不好使。1。把代码写在Click事件中 protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<script language='javascript'>ShowAlertText(document.getElementById('TextBox1').value,'','',null,null);</script>");
}这样根本不能看到效果,而且网页提示脚本错误,其中的js函数在htmlButton的onclick事件中是可以实现的。2。在Page_Load中写入代码如下 if (!this.IsPostBack)
{
this.Button1.Attributes["onclick"] = "ShowAlertText(document.getElementById('TextBox1').value,'','',null,null);";
}效果是可以出现,但是遮罩层只是瞬间的出现又关闭了,这是不是因为页面已经提交的原因?如何才能让使用者点击确定或关闭才让遮罩层消失。有人提示说直接就用html控件,但是我点击Button还需要其他的一些与数据库交互的行为,如果用js来写的话,本人对js又很生疏,不好解决,有高手能否提示一下,该情况下该如何处理才能得到想要的效果呢?
{
Response.Write("<script language='javascript'>ShowAlertText(document.getElementById('TextBox1').value,'','',null,null);</script>");
}这样根本不能看到效果,而且网页提示脚本错误,其中的js函数在htmlButton的onclick事件中是可以实现的。2。在Page_Load中写入代码如下 if (!this.IsPostBack)
{
this.Button1.Attributes["onclick"] = "ShowAlertText(document.getElementById('TextBox1').value,'','',null,null);";
}效果是可以出现,但是遮罩层只是瞬间的出现又关闭了,这是不是因为页面已经提交的原因?如何才能让使用者点击确定或关闭才让遮罩层消失。有人提示说直接就用html控件,但是我点击Button还需要其他的一些与数据库交互的行为,如果用js来写的话,本人对js又很生疏,不好解决,有高手能否提示一下,该情况下该如何处理才能得到想要的效果呢?
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
ViewState["btnClickFlag"] = "0";
if (ViewState["btnClickFlag"].ToString() == "1")
{
Response.Write("<script language='javascript'>ShowAlertText(document.getElementById('TextBox1').value,'','',null,null);</script>");
ViewState["btnClickFlag"] = "0";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
ViewState["btnClickFlag"] = "1";
}
{ }
这个写到外面来
this.Button1.Attributes["onclick"] = "ShowAlertText(document.getElementById('TextBox1').value,'','',null,null);return false";
function show()
{
//弹出层
}
如jwindow
OnClientClick=<%# "OpenWindow('','','');return false;"%>
jwindow
function OpenWindow(id,width,height)
{
var url = "a.aspx";
OpenJWindow('#openwin', url, width,height, EditClosed);
}
/// <summary>
/// 功能:执行客户端一小块脚本语言,在Page对象的<form runat= server>元素的结束标记之前发出该脚本
/// 输入:page 网页中的Page对象
/// script 欲执行的JavaScript脚本
/// 输出:无。
/// </summary>
public static void ExecuteStartup(System.Web.UI.Page page, string script)
{
string strScript;
string strKey;
int i;
//脚本块的内容
strScript = "<script language=javascript>\n";
strScript += " " + script + ";";
strScript += "</script>";
//注册脚本块的Key
strKey = System.DateTime.Now.ToString();
//循环,直至找到某个没被注册过的Key
for (i = 0; i < 10000; i++)
if (!page.ClientScript.IsStartupScriptRegistered(strKey + i.ToString()))
break;
page.ClientScript.RegisterStartupScript(page.GetType(), strKey + i.ToString(), strScript);
}