VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1102|回复: 9

ASP.NET回送参数的问题

[复制链接]

2

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-11-10 09:00:01 | 显示全部楼层 |阅读模式
VS想在后台向前台回送参数。
    用下面这几句,前台可以弹出警告框。
        Response.Write("<script   language=javascript>");
        Response.Write("alert('1111');");
        Response.Write("</script>");
   但我加上一句。
        Response.Write("<script   language=javascript>");
        Response.Write("document.getElementById('Textl').value='99999';");
        Response.Write("alert('1111');");
        Response.Write("</script>");
   这样前台什么反应都没有。
   请高手们指教。
   我的目的是想在后台执行一些语句后,把产生的结果回送到前台的控件里面,本来可以在控件里面加 SERVER,感觉上面的语句能用应该更方便,谢谢。
回复

使用道具 举报

0

主题

64

帖子

45.00

积分

新手上路

Rank: 1

积分
45.00
发表于 2020-11-10 09:15:01 | 显示全部楼层
document.getElementById('Textl').value='99999'
这句有错误,没找到text1这个东西,当然value就不对了
回复

使用道具 举报

0

主题

119

帖子

67.00

积分

新手上路

Rank: 1

积分
67.00
发表于 2020-11-10 09:30:01 | 显示全部楼层
用RegisterClientScriptBlock()
如下:
<html>
  <head>
    <script language="C#" runat="server">

      public void Page_Load(Object sender, EventArgs e)
      {

        if (!this.IsClientScriptBlockRegistered("clientScript"))
        {
          // Form the script that is to be registered at client side.
          String scriptString = "<script language=JavaScript> function DoClick() {";
          scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<";
          scriptString += "/";
          scriptString += "script>";
          this.RegisterClientScriptBlock("clientScript", scriptString);
        }
      }

     </script>
  </head>
  <body topmargin="20" leftmargin="10">
         <form id="myForm" runat="server">
                <input type="text" id="show" style="width=200"> <input type="button" value="ClickMe" onclick="DoClick()">
         </form>
  </body>
</html>

回复

使用道具 举报

0

主题

64

帖子

45.00

积分

新手上路

Rank: 1

积分
45.00
发表于 2020-11-10 11:00:01 | 显示全部楼层
你可以不用这种方法,用<%=后台公有变量%>给Text1赋值
<input id="Text1" type="text" value="<%=后台公有变量%>" />
回复

使用道具 举报

0

主题

13

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-11-10 12:00:01 | 显示全部楼层
问题很明显,用Response.Write发出的任何内容都在html页面的最上方,也就是<html>标签之前,这时候你的页面中所有其它元素都还没有创建,document.getElementById('Textl')根本就什么也取不到,你应该用RegisterStartupScript方法来注册这段脚本才行。

=======================
www.iceice930.com
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-11-10 12:15:01 | 显示全部楼层
换这句试试 document.All('Textl').InnerText
Text1是Div
或document.All('Textl').Value
Text1是input文本框
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-11-10 12:30:01 | 显示全部楼层
支楼上的说法!!!
回复

使用道具 举报

0

主题

24

帖子

20.00

积分

新手上路

Rank: 1

积分
20.00
发表于 2020-11-10 13:00:01 | 显示全部楼层
iceice930  


   问题很明显,用Response.Write发出的任何内容都在html页面的最上方,也就是<html>标签之前,这时候你的页面中所有其它元素都还没有创建,document.getElementById('Textl')根本就什么也取不到,你应该用RegisterStartupScript方法来注册这段脚本才行。

=======================
www.iceice930.com
  

同意!
然后:

如果Text1是服务器端的textbox ,试试这样:

Response.Write("<script   language=javascript>");
        Response.Write("document.getElementById('<%=Textl.Client%>').innerText='99999';");
        Response.Write("alert('1111');");
        Response.Write("</script>");
回复

使用道具 举报

2

主题

5

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-11-10 13:30:01 | 显示全部楼层
按 RegisterStartupScript 的方法,有一个时间的问题,也好象解决不了这个问题。
  注册的脚本是在按钮事件一起执行的,我现在是想后台先执行一些语句,再执行脚本。
如果和按钮事件一起执行,也可以用这个方法的
BUTTON.Attributes.Add

   我现在想做的事情是:上传一个图片,在后台把图片保存好后,再把图片的地址回送到前台控件里面,中间用一个时间间隔。

   为了解决这个时间间隔,用ASP.NET触发又不了 JAVASCRIPT 事件,不知道ASP.NET有什么方法能主动的送参数到前台控件,要主动的送。

  谢谢高手指教。
回复

使用道具 举报

0

主题

13

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-11-10 14:00:01 | 显示全部楼层
估计是text1没找到
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表