20071219 asp.net js info
http://www.yippeesoft.com

在CS后台,只能拿到服务器控件的值(如果你用FindControls) 
  只能用Post,从Request中获取 
  Request["控件"].ToString();  

  js函数绑定到asp.net的控件上:
    用 控件.Attributes.Add(事件,函数) 就可以了,可我在往 CheckBox上加 OnCheckedChanged 事件的时候总是报错。

    在 asp.net 中访问 html 控件:
    一气之下,把所有控件都换成了 html 的,然后在控件上加上 runat=server 这样在 asp.net 中就可以引用了。用 (FindControl(控件id) as html控件类型).属性,如 (this.FindControl("ddlMonth") as HtmlSelect).SelectedIndex ……

    在html网页中读取asp.net的变量
    为了能够在js中读取asp.net中的数据,要保证asp.net中变量的类型js能够分辨,其实想办法变成string的就得了呗!
    其次,要把变量声明为 Public 的。
    在js中使用 变量="<%#asp.net变量名%>";  的形式即可得到变量的值,如 var id = "<%#userid%>"; (asp.net中Public string userid = "zhangsan";

    System.Collections.Specialized.NameValueCollection   nvs=Request.Form; 
                  for   (int   i   =   0;   i   <   nvs.Count;   i++) 
                  &leftsign; 
                          nvs.AllKeys[i];//这里是Text 
                          nvs[i];//这里是值 
                  &rightsign;

    Select   控件的值只有选择后   ,   服务器端通过   Request["select   name"],才能取道选择的值 
  因为asp.net是通过客户端   post   回来的数据来获得客户端的值 
  类似 
  Post   textbox1="yourinput"&Select1="yourslect";  

  在web页面用javascript取值 
  添加一个控件   <asp:textbox   id="txt_slcted"   Width="75px"   runat="server"   style="DISPLAY:none"></asp:textbox> 
  绑定js的时候多加一个getvalue 
  function   getvalue() 
  &leftsign; 
  document.all.txt_slcted.value=""; 
  var   nsvlen=document.all.right_category_id.options.length; 
  for(i=0;i<nsvlen;i++) 
  &leftsign; 
  document.all.txt_slcted.value+=document.all.right_category_id.options[i].value+";"; 
  &rightsign; 
  if(document.all.txt_slcted.value.length>0) 
  &leftsign; document.all.txt_slcted.value=document.all.txt_slcted.value.substr(0,len-1);//去掉最后的; 
  &rightsign; 
  &rightsign; 
 

  asp.net与javacript之间的通讯 

    //因为RegisterStartupScript是在
    //Page 对象的 <form runat= server> 元素
    //的结束标记之前发出该脚本;

    //而RegisterClientScriptBlock则是在
    //Page 对象的 <form runat= server> 元素
    //的开始标记后发出。

      
用ASP.NET向javascript传递变量

 
方法1:

用一个隐藏控件,把变量的值给隐藏控件,再用javascript去找隐藏控件的值
window.document.getElementById("隐藏控件的ID").value //这个就可以得到隐藏控件的值

方法2:
javascript 中:
var value=<%=Num%>

Num要是一个属性
如:
Public String Num
&leftsign;
set&leftsign;…&rightsign;
get&leftsign;…&rightsign;
&rightsign;

如果字符变量是字符型像alert()等要这样用alert("<%=Num%>");
还有Num一定要是public申明

1、js脚本如何访问服务器控件的值
        界面上有一个TextBox控件,ID为Name,js里可以采用如下脚本取Name的值
        var myvalue=document.all(\’Name\’).value;

2、服务器控件如何取js中变量的值
        目前未发现比较好的办法,我通常采用的方法是在界面上放一个隐藏的控件HtmlInputHidden,然后设置为以服务器控件运行,这样在js脚本中和ASP.NET代码里都可以访问到该控件的值
        js中给服务器控件赋值:
        var bt=document.all(\’Name\’).value;
        bt.value=\’名称\’;
        ASP.NET中使用Name.Value来访问。

3、如何遍历界面上所有TextBox元素
        var inputList = document.body.getElementsByTagName("INPUT");
        for(var i=0;i<inputList.length;i++)
        &leftsign;
           if(inputList[i].disabled==false && (inputList[i].type==\’text\’ &line;&line; inputList[i].type==\’password\’))
           &leftsign;
              inputList[i].value="";
           &rightsign;
        &rightsign;

4、让dropdownlist选择到指定项
        选择dropdownlist中值为“我得选择”得项
        var handl=document.all(\’List1\’);
        var my_value=\’我得选择\’;
        for(var index=0;index<handle.options.length;index++)
        &leftsign;
            if(handle.options[index].text==my_value)
            &leftsign;
                handle.selectedIndex=index;
            &rightsign;
        &rightsign;

 1、在aspx文件中找到Form1标签,在其后增加如下js脚本:
        <input type="hidden" name="__EVENTTARGET"> <input type="hidden" name="__EVENTARGUMENT">
   <script language="javascript" type="text/javascript">
    <!–
    function __doPostBack(eventTarget, eventArgument) &leftsign;
    var theform;
    if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) &leftsign;
    theform = document.Form1;
    &rightsign;
    else &leftsign;
    theform = document.forms["Form1"];
    &rightsign;
    theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
    &rightsign;
    // –>
   </script>

2、然后javascript的函数中使用__doPostBack(\’Button1\’,\’\')就可以调用指定服务器按钮的事件了,目前测试了调用 Button的Click事件没有任何问题,不过即使Button的Visible="False"是,事件也是可以被触发的,所以如果需要调用别的服务器函数或者事件,可以在界面上放一个隐藏的Button控件,然后在它的Click事件中调用别的函数即可。

历史博文

标签:, , ,
十月 7, 2008 at 3:42 下午 by yippee 1,023 次
Category: Info
Tags: , , ,