请教客户端生成JS语句的问题
有一个想法,在一个页面中可执行多个方法
每个方法都有一个判断,如何判断成立的话就弹出一个alert的对话框作提示,
现在想把几个方法中的提示字符连接起来一起显示,感觉用户比较好接受。
并在类中申明:
StringBuilder strberScript = new StringBuilder();
当多次执行JSRunStr()方法时。字符都连接累加到strberScript
现在的问题是页面只生成第一次执行的JSRunStr生成的JS语句。而不是想要得到的最后一个次执行JSRunStr生成的JS语句 public void JSRunStr(string Js)
{
strberScript.Append(Js);
page = (Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr"))
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr", strberScript.ToString(), true);
else
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr1", strberScript.ToString(), true);
}
有一个想法,在一个页面中可执行多个方法
每个方法都有一个判断,如何判断成立的话就弹出一个alert的对话框作提示,
现在想把几个方法中的提示字符连接起来一起显示,感觉用户比较好接受。
并在类中申明:
StringBuilder strberScript = new StringBuilder();
当多次执行JSRunStr()方法时。字符都连接累加到strberScript
现在的问题是页面只生成第一次执行的JSRunStr生成的JS语句。而不是想要得到的最后一个次执行JSRunStr生成的JS语句 public void JSRunStr(string Js)
{
strberScript.Append(Js);
page = (Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr"))
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr", strberScript.ToString(), true);
else
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr1", strberScript.ToString(), true);
}
解决方案 »
- To:阿泰、、、、求教一些水晶报表知识。
- "Object reference not set to an instance of an object." 关于treeview的问题
- 求助!!一个Request.QueryString问题???????
- 页面文本框无法获取焦点
- itemTemplate中数据绑定的问题
- |M| 400分请教:我现在要给一个表做销售报表曲线图,但不知道要用什么样的方法来取得数据 请大家指点一下制作思想
- 页面失效要重新登陆,请高手赐教
- 水晶报表如何更改图表横坐标的文字方向和格式?
- DataGrid如何在OnMouseover时,整列变色?
- ASP中如何打开同一ACCESS数据库中的两张表,并更新另一长表
- y 有关DataTable
- 导出数据到execl如何设置sheet的名称,向大虾求助
页面中的程序执行了几次生成JS语句的方法,
但是页面里只生成是第一次执行得到的JS语句
我现在需要得是如何得到最后一次生成的JS语句
页面中的程序执行了几次生成JS语句的方法,
但是页面里只生成是第一次执行得到的JS语句
我现在需要得是如何得到最后一次生成的JS语句
直接在客户端写上 javascript 脚本,然后服务器端负责控件事件中的 js 调用,难道不行吗?
alert('第一条语句,第二条语句,第三条语句')这样吗?
想通过 MBStencil()中的strberMes.Append(msg);
把提示字符联起来
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;namespace Luoxp2.Web
{
public partial class WebForm1 : System.Web.UI.Page
{
StringBuilder strberMes = new StringBuilder(); protected void Page_Load(object sender, EventArgs e)
{
JSRunStr(MBStencil("第1条语句"));
JSRunStr(MBStencil("第2条语句"));
JSRunStr(MBStencil("第3条语句"));
//想实现提得的提示包括三条语句:第1条语句 第2条语句 第3条语句
}
///
/// <summary>
///执行JS语句;
/// </summary>
/// <param name="Js">运行的JavaScript语句</param>
public void JSRunStr(string Js)
{
Page page = (Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr"))
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr", Js, true);
else
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr1", Js, true);
}
/// <summary>
/// 弹出消息框模板
/// </summary>
/// <param name="msg">弹出框内容,可用\\n换行\\t空格</param>
/// <returns>返回模板</returns>
public string MBStencil(string msg)
{
strberMes.Append(msg);
string msg1 = "alert(\"";
msg1 += "信息提示:\\t\\t\\t\\t\\n";
msg1 += "------------------------------------------------";
msg1 += "\\n\\n";
msg1 += strberMes.ToString();
msg1 += "\\n\\n";
msg1 += "-------------------------------------------------";
msg1 += "\\n";
msg1 += "\");";
return msg1;
}
}
}
.CS页面中格式如下
StringBuilder strberMes = new StringBuilder();
protected void Page_Load(object sender, EventArgs e)
{
JSRunStr(MBStencil("第1条语句"));
JSRunStr(MBStencil("第2条语句"));
JSRunStr(MBStencil("第3条语句"));
//想实现提得的提示包括三条语句:第1条语句 第2条语句 第3条语句
} ///
/// <summary>
///执行JS语句;
/// </summary>
/// <param name="Js">运行的JavaScript语句</param>
public void JSRunStr(string Js)
{
this.Label1.Text = "<script>" + Js + "</script>";
}
/// <summary>
/// 弹出消息框模板
/// </summary>
/// <param name="msg">弹出框内容,可用\\n换行\\t空格</param>
/// <returns>返回模板</returns>
public string MBStencil(string msg)
{
strberMes.Append(msg);
string msg1 = "alert(\"";
msg1 += "信息提示:\\t\\t\\t\\t\\n";
msg1 += "------------------------------------------------";
msg1 += "\\n\\n";
msg1 += strberMes.ToString();
msg1 += "\\n\\n";
msg1 += "-------------------------------------------------";
msg1 += "\\n";
msg1 += "\");";
return msg1;
}
---------------------
那就跟踪调试下strberScript的值咯.
public static int i=0;
public void JSRunStr(string Js)
{
strberScript.Append(Js);
page = (Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr"+i))
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr"+i, strberScript.ToString(), true);
else
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr1"+i+1, strberScript.ToString(), true);
}
但我的方法其实是写在类里的
并不想每个调用的该方法的页面都加个LABEL吧
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;namespace Luoxp2.Web
{
public partial class WebForm1 : System.Web.UI.Page
{
StringBuilder strberMes = new StringBuilder();
public static int count = 0; protected void Page_Load(object sender, EventArgs e)
{
JSRunStr(MBStencil("第1条语句"));
JSRunStr(MBStencil("第2条语句"));
JSRunStr(MBStencil("第3条语句"));
//想实现得的只是一次提示,提示内容包括字符是三条的总合:第1条语句 第2条语句 第3条语句
}
///
/// <summary>
///执行JS语句;
/// </summary>
/// <param name="Js">运行的JavaScript语句</param>
public void JSRunStr(string Js)
{ Page page = (Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr" + count))
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr" + count, Js, true);
else
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr" + count+"_", Js, true);
}
/// <summary>
/// 弹出消息框模板
/// </summary>
/// <param name="msg">弹出框内容,可用\\n换行\\t空格</param>
/// <returns>返回模板</returns>
public string MBStencil(string msg)
{
count++;
strberMes.Append(msg);
string msg1 = "alert(\"";
msg1 += "信息提示:\\t\\t\\t\\t\\n";
msg1 += "------------------------------------------------";
msg1 += "\\n\\n";
msg1 += strberMes.ToString();
msg1 += "\\n\\n";
msg1 += "-------------------------------------------------";
msg1 += "\\n";
msg1 += "\");";
return msg1;
}
}
}
{
//JSRunStr(MBStencil("第1条语句"));
//JSRunStr(MBStencil("第2条语句"));
MBStencil("第1条语句");
MBStencil("第2条语句");
JSRunStr(MBStencil("第3条语句"));
//想实现提得的提示包括三条语句:第1条语句 第2条语句 第3条语句
}
private string msg1 = null;
protected void Page_Load(object sender, EventArgs e)
{
MBStencil("第1条语句"); MBStencil("第2条语句"); MBStencil("第3条语句");
JSRunStr(returnmsg()); //想实现提得的提示包括三条语句:第1条语句 第2条语句 第3条语句
} ///
/// <summary>
///执行JS语句;
/// </summary>
/// <param name="Js">运行的JavaScript语句</param>
public void JSRunStr(string Js)
{
Page page = (Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr"))
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr", Js, true);
else
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr1", Js, true);
}
/// <summary>
/// 弹出消息框模板
/// </summary>
/// <param name="msg">弹出框内容,可用\\n换行\\t空格</param>
/// <returns>返回模板</returns>
public void MBStencil(string msg)
{
strberMes.Append(msg);
}
public string returnmsg()
{
string msg1 = "alert(\"";
msg1 += "信息提示:\\t\\t\\t\\t\\n";
msg1 += "------------------------------------------------";
msg1 += "\\n\\n";
msg1 += strberMes.ToString();
msg1 += "\\n\\n";
msg1 += "-------------------------------------------------";
msg1 += "\\n";
msg1 += "\");";
//msg1 = "alert('" + strberMes.ToString() + "')";
return msg1;
}
{
MBStencil("第1条语句");
MBStencil("第2条语句");
JSRunStr(MBStencil("第3条语句"));
//想实现提得的提示包括三条语句:第1条语句 第2条语句 第3条语句
}
///
/// <summary>
///执行JS语句;
/// </summary>
/// <param name="Js">运行的JavaScript语句</param>
public void JSRunStr(string Js)
{
Page page = (Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr"))
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr", Js, true);
else
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr1", Js, true);
}
/// <summary>
/// 弹出消息框模板
/// </summary>
/// <param name="msg">弹出框内容,可用\\n换行\\t空格</param>
/// <returns>返回模板</returns>
public string MBStencil(string msg)
{
strberMes.Append(msg);
string msg1 = "alert(\"";
msg1 += "信息提示:\\t\\t\\t\\t\\n";
msg1 += "------------------------------------------------";
msg1 += "\\n\\n";
msg1 += strberMes.ToString();
msg1 += "\\n\\n";
msg1 += "-------------------------------------------------";
msg1 += "\\n";
msg1 += "\");";
return msg1;
}
有一个问题我的这个方法是放在类中执行的
并且JSRunStr(MBStencil("第条语句"))两个方法是关联在一起共同执行的
如果按兄台的思路其实也是把字符串联接在一起统一执行JS语句
感觉通知性不强,因为我不感觉我的类中会出现多少个这个提示方法
有一个问题我的这个方法是放在类中执行的
并且JSRunStr(MBStencil("第条语句"))两个方法是关联在一起共同执行的
如果按兄台的思路其实也是把字符串联接在一起统一执行JS语句
感觉通知性不强,因为我不感觉我的类中会出现多少个这个提示方法
另外一个兄台提示的动态加载label 控件作为装载js语句的容器方法也很好。。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Collections.Generic;
namespace Luoxp2.Web
{
public partial class WebForm1 : System.Web.UI.Page
{
StringBuilder strberMes = new StringBuilder();
public List<string> listStr = new List<string>(); protected void Page_Load(object sender, EventArgs e)
{
JSRunStr(MBStencil("第1条语句"));
JSRunStr(MBStencil("第2条语句"));
JSRunStr(MBStencil("第3条语句"));
//想实现得的只是一次提示,提示内容包括字符是三条的总合:第1条语句 第2条语句 第3条语句
}
///
/// <summary>
///执行JS语句;
/// </summary>
/// <param name="Js">运行的JavaScript语句</param>
public void JSRunStr(string Js)
{
listStr.Add(Js);
string strMsg = new Luoxp2.Class.Config().GetStrFromArr(listStr.ToArray(),"");//将数组拼接成字符串的方法
Page page = (Page)System.Web.HttpContext.Current.Handler;
if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr"+listStr.Count.ToString() ))
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr" + listStr.Count.ToString(), strMsg, true);
else
page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr" + listStr.Count.ToString() + "_", strMsg, true);
}
/// <summary>
/// 弹出消息框模板
/// </summary>
/// <param name="msg">弹出框内容,可用\\n换行\\t空格</param>
/// <returns>返回模板</returns>
public string MBStencil(string msg)
{
string msg1 = "alert(\"";
msg1 += "信息提示:\\t\\t\\t\\t\\n";
msg1 += "------------------------------------------------";
msg1 += "\\n\\n";
msg1 += msg;
msg1 += "\\n\\n";
msg1 += "-------------------------------------------------";
msg1 += "\\n";
msg1 += "\");";
return msg1;
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Collections.Generic;
namespace Luoxp2.Web
{
public partial class WebForm1 : System.Web.UI.Page
{
StringBuilder strberMes = new StringBuilder();
Label label = new Label(); protected void Page_Load(object sender, EventArgs e)
{
JSRunStr(MBStencil("第1条语句"));
JSRunStr(MBStencil("第2条语句"));
JSRunStr(MBStencil("第3条语句"));
//想实现得的只是一次提示,提示内容包括字符是三条的总合:第1条语句 第2条语句 第3条语句
}
///
/// <summary>
///执行JS语句;
/// </summary>
/// <param name="Js">运行的JavaScript语句</param>
public void JSRunStr(string Js)
{
Page page = (Page)System.Web.HttpContext.Current.Handler;
label.ID = "JSRunStr";
label.Text = " <script>" + Js + " </script>";
label.Style.Add(HtmlTextWriterStyle.Display, "none");
page.Controls.Add(label); //if (!page.ClientScript.IsClientScriptBlockRegistered("JSRunStr"+listStr.Count.ToString() ))
// page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr" + listStr.Count.ToString(), strMsg, true);
//else
// page.ClientScript.RegisterStartupScript(this.GetType(), "JSRunStr" + listStr.Count.ToString() + "_", strMsg, true);
}
/// <summary>
/// 弹出消息框模板
/// </summary>
/// <param name="msg">弹出框内容,可用\\n换行\\t空格</param>
/// <returns>返回模板</returns>
public string MBStencil(string msg)
{
strberMes.Append(msg);
string msg1 = "alert(\"";
msg1 += "信息提示:\\t\\t\\t\\t\\n";
msg1 += "------------------------------------------------";
msg1 += "\\n\\n";
msg1 += strberMes.ToString();
msg1 += "\\n\\n";
msg1 += "-------------------------------------------------";
msg1 += "\\n";
msg1 += "\");";
return msg1;
}
}
}
JSRunStr(MBStencil("第2条语句"));
JSRunStr(MBStencil("第3条语句"));---------JSRunStr(MBStencil("第1条语句&第2条语句&第3条语句"));