onclick要两次才执行JS:clickok(),放在page_load里不行,因为我要传值,请高手帮忙

时间:2021-07-28 20:57:01
<SCRIPT language="javascript">
function clickok()
  {                        
     returnall = document.all("txt_ID").value+","+document.all("txt_NA").value;
     window.returnValue=returnall;
 window.close();
 return true;
   }
</SCRIPT>


private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{   
// 在此处放置用户代码以初始化页面
ShowAll();
}
}

private void btn_cx_Click(object sender, System.EventArgs e)
{
    GYS_Bll gb = new GYS_Bll();
gb.Entity.gys = txt_DH.Text.Trim();
if(gb.getOnly() == false)
{
DataSet ds = gb.getNP();
DataRow dr = ds.Tables[0].Rows[0];
txt_ID.Text = dr["gys_id"].ToString();
txt_NA.Text = dr["gys"].ToString();
    btn_cx.Attributes.Add("onClick","javascript:clickok()");
}
else

DataSet ds = gb.getNP();
dg_gys.DataSource = ds;
dg_gys.DataBind();
}
}

13 个解决方案

#1


那是因为
你执行btn_cx_Click的时候才绑定onClick啊。当然是点击之后,再次点击才有效啊

#2


那我知道,第一次是注册onclick嘛,那有没有其它不用注册的方法?

#3


btn_cx.Attributes.Add("onClick","javascript:clickok()");
你可以改成
Page.ClientScript.RegisterStartupScript(Page.GetType(),"js","clickok()",true)

#4


Page.ClientScript.RegisterStartupScript(Page.GetType(),"js","clickok()",true)
改了这个后,出了system.web.ui.page不存在ClientScript

#5


还有没有其它不用在page_load注册的方法?

#6


出了system.web.ui.page不存在ClientScript?
你使用的是asp.net2.0以前的版本?

参考

http://msdn.microsoft.com/zh-cn/library/system.web.ui.page.clientscript%28VS.80%29.aspx

#7


你要搞清楚代码的执行顺序你就能明白其中的道理了

#8


我的是.net2003学校就用这个,我也没办法

#9


引用 8 楼  的回复:
我的是.net2003学校就用这个,我也没办法


那就使用
Page.RegisterStartupScript("js","<script>clickok();</script>")


http://msdn.microsoft.com/zh-cn/library/system.web.ui.page.registerstartupscript%28VS.80%29.aspx

#10


这我试过了,按了后没反应,不会调用clickok()

#11


本帖最后由 net_lover 于 2012-09-23 00:25:49 编辑
Page.RegisterStartupScript("js","<script>alert('test');</script>")
这样不会弹出内容?

当然,这样写跟直接通过点击按钮执行时有区别的,你需要修改下执行的代码

#12


Page.RegisterStartupScript("js","<script>clickok();</script>")

这是对的,可以了,谢谢高手啊,真想给你100分

#13


onclick要两次才执行JS:clickok(),放在page_load里不行,因为我要传值,请高手帮忙我只是来围观一下!!

#1


那是因为
你执行btn_cx_Click的时候才绑定onClick啊。当然是点击之后,再次点击才有效啊

#2


那我知道,第一次是注册onclick嘛,那有没有其它不用注册的方法?

#3


btn_cx.Attributes.Add("onClick","javascript:clickok()");
你可以改成
Page.ClientScript.RegisterStartupScript(Page.GetType(),"js","clickok()",true)

#4


Page.ClientScript.RegisterStartupScript(Page.GetType(),"js","clickok()",true)
改了这个后,出了system.web.ui.page不存在ClientScript

#5


还有没有其它不用在page_load注册的方法?

#6


出了system.web.ui.page不存在ClientScript?
你使用的是asp.net2.0以前的版本?

参考

http://msdn.microsoft.com/zh-cn/library/system.web.ui.page.clientscript%28VS.80%29.aspx

#7


你要搞清楚代码的执行顺序你就能明白其中的道理了

#8


我的是.net2003学校就用这个,我也没办法

#9


引用 8 楼  的回复:
我的是.net2003学校就用这个,我也没办法


那就使用
Page.RegisterStartupScript("js","<script>clickok();</script>")


http://msdn.microsoft.com/zh-cn/library/system.web.ui.page.registerstartupscript%28VS.80%29.aspx

#10


这我试过了,按了后没反应,不会调用clickok()

#11


本帖最后由 net_lover 于 2012-09-23 00:25:49 编辑
Page.RegisterStartupScript("js","<script>alert('test');</script>")
这样不会弹出内容?

当然,这样写跟直接通过点击按钮执行时有区别的,你需要修改下执行的代码

#12


Page.RegisterStartupScript("js","<script>clickok();</script>")

这是对的,可以了,谢谢高手啊,真想给你100分

#13


onclick要两次才执行JS:clickok(),放在page_load里不行,因为我要传值,请高手帮忙我只是来围观一下!!