每个页面有两三个server button, 想实现用户随时点击回车都是点击指定按钮(Next,Submit,etc.)
有的在用户控件里。
我觉得也只能在后台为指定按钮加script,因为按钮类型太多,还有的在用户控件里,但怎么加呢?
相当于实现客户端<body onkeydown="ClickNext(ctlID)">,因为Attribute是服务器控件的属性,body的onkeydown后台怎么加?

解决方案 »

  1.   

    <%@ Page Language="C#" AutoEventWireup="True" %>
    <html>
    <head><script runat="server">void Page_Load(Object sender, EventArgs e) 
    {
    xx.Attributes.Add("onclick","alert('xx')");
    b.Attributes.Add("onkeydown","if(event.keyCode==13) document.all.xx.click()");
    }
    </script>
    </head>
    <body id=b runat=server>
    <form runat=server>
    <asp:Panel id=p runat=server/>
    <asp:Textbox  id=t1  runat=server/>
    <asp:button id=b1  runat=server Text="b1"/>
    <asp:button id=b3  runat=server Text="b2"/>
    <asp:button id=xx  runat=server Text="xx" />
    </form>
    </body>
    </HTML>
      

  2.   

    如果在后代码写,要先定义
    System.Web.UI.HtmlControls.HtmlGenericControl b;
      

  3.   

    也可以直接写在xxx.aspx中
    原理当然也是一样的,
    在body中增加 onkeypress="keypress()"再添加js脚本:
    function keypress()
    {
      if(event.keyCode==13)
       {
         Form1.button1.click();
        }
    }
      

  4.   

    客户端写么要手动写按钮的客户端ID,用服务器端可以传按钮名给javasript方法,可以把它写成公用的了,对吧。
    再问一下,如果用<body id="body" runat="server> 然后后台
    body.Attribute.add("onkeydown","ClickNextButton("+BtnNext.ID+")")
    这样会有问题吗,因为代码好像可以简单点。
      

  5.   

    让你的指定按钮的tabindex=0,然后回车就是它的事件了
      

  6.   

    哦,用如果body runat=server 还是要定义成HtmlGenericControl才能用的,看来孟子E章的方法是我唯一可取的方法了。让你的指定按钮的tabindex=0,然后回车就是它的事件了
    ----
    这样是不行的,windows的做法那是,web始终是会触发靠近文本框的一个按钮的。