js相关变量方法调用

(1)//后台:Publicstringstr="123";  //最好为Public类型

直接在AspX前台页面HTML代码中要放的位置写入如下代码:

<td><%=str%></td>

 

(2)用JS取本页面中的服务器端控件值:

服务器端控件值:

functiona()
     {
      vari;
        i=document.getElementById('<%=服务器控件id.ClientID %>').value;   
       //取Label控件值
         document.getElementById('<%=lblUserName.ClientID %>').innerText=i;
     }

(3)用JS取自定义用户控件(**.ascx)中的

 

function b()
{
     //.ascx用户控件在本页面上的id,即<uc>标签中的ID名称,再加上.ascx页面里面的服务器控件ID
     //并用"_"连 接
     var j=document.getElementById('<%=UC的ID.ClientID %>'+"_txtID").value;//TextBox
     //在取Label控件的值时改用下面的写法,可能有些朋友也用了上面的写法,所以取不到吧……
     var jj=document.getElementById('<%=UC的ID.ClientID %>'+"_txtID")..innerHTML;//Label
}
  

补充一下:
对于服务器端控件里调用js,不可以直接绑后台变量,要先声明一下js变量,赋值为后台变量
<script>
    var testTxt=" <%=stetValue %>";
    </script>
    <div>
<input type="button" onclick="return confirm('<%=stetValue %>')" value="测试" /> //客户端控件可以直接用
        <asp:Button ID="Button1" runat="server" Text="测试" OnClientClick="return confirm(testTxt)" />
    </div>

 

此外:

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() 
{ 
//……比如计算某值 
} 

问题2.如何在JavaScript访问C#变量? 
答案如下: 
方法一:1、通过页面上隐藏域访问 <input id="xx" type="hidden" runat="server" > 
方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为 ' <%=n% > '或"+ <%=n% >+" 
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本 
" <script language= 'javascript ' >var temp=" + tmp + " </script >" 
tmp是后台变量,然后js中可以直接访问temp获得值。 


3.如何在C#中访问JavaScript的已有变量? 

答案如下: 

方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中; 
2、后台用request["id"]来获取值; 

方法二:可以用cookie或session 


4.如何在C#中访问JavaScript函数? 
答案如下: 
c#代码中执行javaScript函数: 
方法一:1、Page.RegisterStartupScript("ggg"," <script >SetVisible(1); </script >"); 
方法二:使用Literal类,然后 
private void Button2_Click(object sender, System.EventArgs e) 
{ 
string str; 
str=" <script language= 'javascript ' >"; 
str+="selectRange()"; 
str+=" </script >"; 
//Literal1.Visible=true; 
Literal1.Text=str; 
}

--------------------------------------------------------------------

项目中有个小功能,在Js中修改一个服务器标签的值,如 document.getElementById("lblClothIndex").innerHTML = result;(比如由“1”修改成“2”),可是在后台通过this.lblClothIndex.Text获得的还是"1"这个老值。后来发现通过调用隐藏控件的方法可以获得最新值,代码如下:

        1. 添加一个隐藏控件  <asp:HiddenField ID="HiddenField1" runat="server" />

        2. 用JS为服务器标签赋值的时候也给隐藏控件赋值  document.getElementById("HiddenField1").value = result;

        3. 在后台通过 this.HiddenField1.Value代码获得最新值

 

posted on 2014-12-08 09:21  zsfwh  阅读(1080)  评论(0)    收藏  举报