RT
1.在ASPX页上调用ASPX。CS页下的方法,javascript内这样写<%fuc_num(参数)%>,此处参数如何写?2.这样调用在编译的时候会提示错误,缺少分号<%fuc_num(参数);%>这样写又不处发事件,如何来触发我自定义的事件(自定义事件是public的)?3.从aspx页上的JavaScript内怎么向aspx.cs页上传值?求解,最好有示例代码

解决方案 »

  1.   

    后台代码(把public改成protected也可以)
    public string ss() 
      { 
      return("a"); 
      }
      在html里用可以调用
      前台脚本
    <script language=javascript> 
      var a = "<%=ss()%>"; 
      alert(a); 
    </script>
      

  2.   

    javaScript函数中执行C#代码中的函数:
    方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
    2、在前台写一个js函数,内容为document.getElementById("btn1").click();
    3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;方法二:1、函数声明为public 
    后台代码(把public改成protected也可以)
    public string ss()
    {
    return("a");
    }
    2、在html里用<%=fucntion()%>可以调用
    前台脚本
    <script language=javascript>
    var a = "<%=ss()%>";
    alert(a);
    </script>
    方法三:1、<script language="javascript">
    <!--
    function __doPostBack(eventTarget, eventArgument)
    {
    var theForm = document.Form1; //指runat=server的form
    theForm.__EVENTTARGET.value = eventTarget;
    theFrom.__EVENTARGUMENT.value = eventArgument;
    theForm.submit();
    }
    -->
    </script>
    <input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')">方法四:<script language="javascript">
    function SubmitKeyClick()
    {
    if (event.keyCode == 13)
    {
    event.cancelBubble = true;
    event.returnValue = false;
    document.all.FunName.value="你要调用的函数名";
    document.form[0].submit();
    }
    }
    </script><INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
    <input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉在.CS里有:
    public Page_OnLoad()
    {
    if (!Page.IsPost())
    {
    string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
    //根据传回来的值决定调用哪个函数
    switch(strFunName)
    {
    case "enter()":
    enter() ; //调用该函数
    break;
    case "其他":
    //调用其他函数
    break;
    default:
    //调用默认函数
    break;
    }
    }
    }public void enter()
    {
    //……比如计算某值
      

  3.   

    谢谢楼上几位,刚才测试了下,在页面上我放了一个textbox,双击textbox在TextBox1_TextChanged事件里写下this.TextBox1.Text = "OK!!!!";在前台页面上改变textbox1内的内容事件没有触发,但是再点刷新就可以触发这个事件,请问是怎么回事?我想实现的是
                            function   addSrcToDestList()   {      
                                listAll   =   window.document.forms[0].Data_List;     
                                for(var   i   =   0;   i   <   listAll.length;   i++)   {   
                                    if   ((listAll.options[i]   !=   null)   &&   (listAll.options[i].selected))   {   
                                    window.document.forms[0].TextBox1.value=listAll.options[i].value;
                                    //在此触发textbox的change事件,并且在cs页代码内改变前台页上控件的值
                                    
                                    break;   
                                    }   
                                }   
                            }  
      

  4.   

    前台:
    TextBox ID="txtEmpNo" runat="server" Width="108px" onblur="DoEvent('txtEmpNo_Changed')"后台:
    public void DoEvent(string evt_name)
        {
            switch (evt_name)
            {
                case "txtEmpNo_Changed":
                    //你想做的事情                break;
            }
        }
      

  5.   

    添加event后 只要你的鼠标一点击textbox以外的地方 这个事件就触发  值也就会改变
      

  6.   

    aspx页:
    <asp:ListBox ID="Data_List" runat="server" Height="415px" 
                                        Width="259px" OnSelectedIndexChanged="Data_List_SelectedIndexChanged"></asp:ListBox>&nbsp;<br />aspx.cs页:
     protected void Data_List_SelectedIndexChanged(object sender, EventArgs e)
        {
            string val = "";
            for (byte cnt = 0; cnt < Data_List.Items.Count; cnt++)
            {
                if ((Data_List.Items[cnt].Value != null) && (Data_List.Items[cnt].Selected))
                    val = Data_List.Items[cnt].Value.ToString();
            }        TextBox1.Text = val;
        }
    为什么这么写不触发事件呢?
      

  7.   

    这个其实也可以  不过你需要在里面做刷新的动作 让页面刷新一下<script type="text/javascript">
    function ref()
    {
    document.execCommand("Refresh");
    }
    </script>
      

  8.   

    Textbox1.Attributes.Add("onblur","DoEvent()");
    还可使用ajax通过web services调用方法回传调用事件__doPostBack('Button1','');
    3
    Response.Write("<script>A("+textbox1.Text+");</script>");
      

  9.   

    1.在ASPX页上调用ASPX。CS页下的方法,javascript内这样写 <%fuc_num(参数)%>,此处参数如何写? 参数最好是 object 类型的2.这样调用在编译的时候会提示错误,缺少分号 <%fuc_num(参数);%>这样写又不处发事件,如何来触发我自定义的事件(自定义事件是public的)? 你少了个等号<%=fuc_num(参数)%>,3.从aspx页上的JavaScript内怎么向aspx.cs页上传值? 这个自己去搜text你说写了不触发,你忘记吧 AutoPostBack = true 了~
      

  10.   

    to:zibaozhangyutext你说写了不触发,你忘记吧 AutoPostBack = true 了~这个我加上了,还是触发不了<asp:TextBox ID="TextBox1" runat="server" AutoPostBack = "true" OnTextChanged="TextBox1_TextChanged"></asp:TextBox></td>
    谢谢大家,前几个问题基本都明白了,这个为什么加不上呢?
      

  11.   

    你pageload 里面加了 if(!postback){} 了吗?