后台调用前台JS方法

jnhcd 2009-05-12 05:42:49
后台代码是:

while (dr.Read())
{
string top, left, width, height,userName;
top = dr.GetString(0);
left = dr.GetString(1);
width = dr.GetString(2);
height = dr.GetString(3);
userName = dr.GetString(4);

string strScript = "<script language='JavaScript'> add(" + top + "," + left + "," + width + "," + height + "," + userName + "); </script>";
ClientScript.RegisterStartupScript(this.GetType(), "add", strScript);
}


前台的JS代码是:

<script type="text/javascript">
function add(var y, var x, var w, var h, var username) {
alert('the method of add has been used! ');
var top = parseInt(y);
var left = parseInt(x);
var width = parseInt(w);
var height = parseInt(h);
var text = username;
var div = document.createElement("div");

div.style.position = 'absolute';
div.style.top = top + 'px';
div.style.left = left + 'px';
div.style.width = width + 'px';
div.style.height = height + 'px';
div.style.margin=0;
div.style.padding=0;
div.style.float='left';
div.style['line-width'] = width + 'px';
div.style['line-height'] = height + 'px';
div.style.border = '1px solid #7d7d7d';
document.getElementById("bigdiv").appendChild(div);
}
</script>


为什么怎么都没用啊?
...全文
2219 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jnhcd 2009-05-13
  • 打赏
  • 举报
回复
-12 把JS写在后台早已经可以实现了。。。

-16 strScript我改这样了,但是没有把add方法改一下,你这种方法可以调用了。谢谢
echoxue 2009-05-12
  • 打赏
  • 举报
回复
function add(var y, var x, var w, var h, var username)
改为:->
function add(y, x, w, h, username)
echoxue 2009-05-12
  • 打赏
  • 举报
回复
while (dr.Read())
{
string top, left, width, height,userName;
top = dr.GetString(0);
left = dr.GetString(1);
width = dr.GetString(2);
height = dr.GetString(3);
userName = dr.GetString(4);

string strScript = "<script language='JavaScript'> add(" + top + "," + left + "," + width + "," + height + "," + userName + "); </script>";
ClientScript.RegisterStartupScript(this.GetType(), "add", strScript);
}
string strScript = "<script language='JavaScript'> add(" + top + "," + left + "," + width + "," + height + "," + userName + "); </script>";
->改为

string strScript = "<script language='JavaScript'> add('" + top + "','" + left + "','" + width + "','" + height + "','" + userName + "'); </script>";
echoxue 2009-05-12
  • 打赏
  • 举报
回复
晕啊,第一次看到function还有参数的
function add(y, x, w, h, username)


<script type="text/javascript">
function add(var y, var x, var w, var h, var username) {
alert('the method of add has been used! ');
var top = parseInt(y);
var left = parseInt(x);
var width = parseInt(w);
var height = parseInt(h);
var text = username;
var div = document.createElement("div");

div.style.position = 'absolute';
div.style.top = top + 'px';
div.style.left = left + 'px';
div.style.width = width + 'px';
div.style.height = height + 'px';
div.style.margin=0;
div.style.padding=0;
div.style.float='left';
div.style['line-width'] = width + 'px';
div.style['line-height'] = height + 'px';
div.style.border = '1px solid #7d7d7d';
document.getElementById("bigdiv").appendChild(div);
}
</script>


zzxap 2009-05-12
  • 打赏
  • 举报
回复
[code=C#]


while (dr.Read())
{
string top, left, width, height,userName;
top = dr.GetString(0);
left = dr.GetString(1);
width = dr.GetString(2);
height = dr.GetString(3);
userName = dr.GetString(4);



StringBuilder sb = new StringBuilder();
sb.Append("<script language='javascript'>");

sb.Append(" function add(var y, var x, var w, var h, var username) {");
sb.Append("alert('the method of add has been used! ');");
sb.Append(" var top = parseInt(y);");
sb.Append(" var left = parseInt(x);");
sb.Append(" var width = parseInt(w);");
sb.Append(" var height = parseInt(h);");
sb.Append(" var text = username;
sb.Append(" var div = document.createElement("div");

sb.Append(" div.style.position = 'absolute';
sb.Append(" div.style.top = top + 'px';
sb.Append(" div.style.left = left + 'px';
sb.Append(" div.style.width = width + 'px';
sb.Append(" div.style.height = height + 'px';
sb.Append(" div.style.margin=0;");
sb.Append(" div.style.padding=0;");
sb.Append(" div.style.float='left';");
sb.Append("div.style['line-width'] = width + 'px';");
sb.Append(" div.style['line-height'] = height + 'px';");
sb.Append(" div.style.border = '1px solid #7d7d7d';");
sb.Append(" document.getElementById("bigdiv").appendChild(div);");
sb.Append(" }");


sb.Append("add('" + top + "','" + left + "','" + width + "','" + height + "','" + userName + "');");

sb.Append("</script>");
ClientScript.RegisterStartupScript(this,this.GetType(), "LoadPicScript", sb.ToString());

[/CODE]
jnhcd 2009-05-12
  • 打赏
  • 举报
回复
-7 你的根据是什么?看不明白
zzxap 2009-05-12
  • 打赏
  • 举报
回复
[code=C#]


while (dr.Read())
{
string top, left, width, height,userName;
top = dr.GetString(0);
left = dr.GetString(1);
width = dr.GetString(2);
height = dr.GetString(3);
userName = dr.GetString(4);



StringBuilder sb = new StringBuilder();
sb.Append("<script language='javascript'>");

sb.Append(" function add(var y, var x, var w, var h, var username) {");
sb.Append("alert('the method of add has been used! ');");
sb.Append(" var top = parseInt(y);");
sb.Append(" var left = parseInt(x);");
sb.Append(" var width = parseInt(w);");
sb.Append(" var height = parseInt(h);");
sb.Append(" var text = username;
sb.Append(" var div = document.createElement("div");

sb.Append(" div.style.position = 'absolute';
sb.Append(" div.style.top = top + 'px';
sb.Append(" div.style.left = left + 'px';
sb.Append(" div.style.width = width + 'px';
sb.Append(" div.style.height = height + 'px';
sb.Append(" div.style.margin=0;");
sb.Append(" div.style.padding=0;");
sb.Append(" div.style.float='left';");
sb.Append("div.style['line-width'] = width + 'px';");
sb.Append(" div.style['line-height'] = height + 'px';");
sb.Append(" div.style.border = '1px solid #7d7d7d';");
sb.Append(" document.getElementById("bigdiv").appendChild(div);");
sb.Append(" }");


sb.Append("add(" + top + "," + left + "," + width + "," + height + "," + userName + ");");

sb.Append("</script>");
ClientScript.RegisterStartupScript(this,this.GetType(), "LoadPicScript", sb.ToString());

[/CODE]
jnhcd 2009-05-12
  • 打赏
  • 举报
回复
-8 我试了,还是不行。。顺便把其他参数的单引号也加了,也不行。。
ralpha08 2009-05-12
  • 打赏
  • 举报
回复
是不是用ajax了?
jnhcd 2009-05-12
  • 打赏
  • 举报
回复
-4 也不行。。


-2 那样写直接报错。。汗
yangqidong 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jnhcd 的回复:]
各位大大,请试了以后再发表,ok?


-2,这个方法哪里有4个参数的?

-3,这句应该没问题,跑出来的结果strScript 为: <script language='JavaScript'> add(0,0,600,600,admin); </script>
[/Quote]

你不觉得应该是这样才对么?
<script language='JavaScript'> add(0,0,600,600,'admin'); </script>
ralpha08 2009-05-12
  • 打赏
  • 举报
回复

int i=0;
while (dr.Read())
{

string top, left, width, height,userName;
top = dr.GetString(0);
left = dr.GetString(1);
width = dr.GetString(2);
height = dr.GetString(3);
userName = dr.GetString(4);

string strScript = "<script language='JavaScript'> add(" + top + "," + left + "," + width + "," + height + "," + userName + "); </script>";
ClientScript.RegisterStartupScript(this.GetType(), "add"+i.ToString(), strScript);
i++;
}


jnhcd 2009-05-12
  • 打赏
  • 举报
回复
不好意思,我的语气可能重了点,烦了一下午了。。汗。sorry
jnhcd 2009-05-12
  • 打赏
  • 举报
回复
各位大大,请试了以后再发表,ok?


-2,这个方法哪里有4个参数的?

-3,这句应该没问题,跑出来的结果strScript 为:<script language='JavaScript'> add(0,0,600,600,admin); </script>
蝶恋花雨 2009-05-12
  • 打赏
  • 举报
回复
ClientScript.RegisterStartupScript(this.Page.GetType(), "clientscript", " add(" + top + "," + left + "," + width + "," + height + "," + userName + ");", true);这样试试
yangqidong 2009-05-12
  • 打赏
  • 举报
回复
string strScript = "<script language='JavaScript'> add(" + top + "," + left + "," + width + "," + height + ",'" + userName + "'); </script>";
username前后要有单引号
zzxap 2009-05-12
  • 打赏
  • 举报
回复
ClientScript.RegisterStartupScript(this,this.GetType(), "add", strScript);
jnhcd 2009-05-12
  • 打赏
  • 举报
回复
为什么ClientScript.RegisterStartupScript这个方法不好使啊?晕,求助

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧