后台代码:
public string[] names = new string[100];
public void read(string name)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("./") + "xmlfile\\" + name + ".xml");
for (int i = 0; i < doc.DocumentElement.ChildNodes.Count; i++)
{
names[i] = doc.DocumentElement.ChildNodes[i].ChildNodes[0].Value;
}
}
catch { }
}name1.xml:
<?xml version="1.0" encoding="gb2312"?>
<item>
<name>张三</name>
<name>李四</name>
<name>王五</name>
<name>赵六</name>
</item>前台如何用JS调用这个方法,并将name1传到后台,读name1并为names赋值,因为前台在后面一些会用到这个数组中的值.
public string[] names = new string[100];
public void read(string name)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("./") + "xmlfile\\" + name + ".xml");
for (int i = 0; i < doc.DocumentElement.ChildNodes.Count; i++)
{
names[i] = doc.DocumentElement.ChildNodes[i].ChildNodes[0].Value;
}
}
catch { }
}name1.xml:
<?xml version="1.0" encoding="gb2312"?>
<item>
<name>张三</name>
<name>李四</name>
<name>王五</name>
<name>赵六</name>
</item>前台如何用JS调用这个方法,并将name1传到后台,读name1并为names赋值,因为前台在后面一些会用到这个数组中的值.
解决方案 »
- Infragistics35 9.2 版本如何升级到10.3?
- datalist 添加 new标签
- 请教一个常识性的问题,请高手指点。
- 数据延迟的问题
- 一个简单的检索语句。帮帮我!
- 在网页上可以用 barcodeImage打印出条形码吗 ,请教高手
- $.toJSON() 在 jquery-1.9.1.js未定义
- 有什么参数可以控制视频文件开始播放的时间?在先等、给分
- 请教entityframework的更新机制
- 我想将查询参数存在数据库中,查询时调用出来,sql语句怎么写?
- 怎样在母板页contentplaceholder中点击一个超链接,在另一个contentplaceholder打开该链接?
- 当鼠标离开asp:TextBox控件时,能触发什么事件?(我想验证输入是否重复)
或者用ajax
前台用<%= %>调值就可以了
下次再用时,后台已经有了,直接用
发送私信
在线聊天
myqxue
叶子
等级:嘿嘿,调用后台方法只能AJAX。
看看AJAXPRO的原理就知道了,主要是HTTPHANDLER,反射,JS
或者用ajax[/color]不明白,可以提供些代码吗?
不可以的,<%=readxml('name1') %>";
alert("<%=names[1] %>");
弹出空内容
using System;
using System.Web.Services;
public class MyMath {
[WebMethod]
public int add(int a, int b)
{
return a + b;
}
[WebMethod]
public int subtract(int a, int b)
{
return a - b;
}
}
...
public string DataFileName
{
get{
...
}
set{
...
}
}
...前台
<input id="dt2" onclick="你的脚本" name="dt2" style="width: 138px" value=<%=DataFileName%>
现在你的方法无返回值,而是是给names赋值
那前台取names值就好了呀
修改方法 让该方法return names;
前台定义一个变量
var sel="name1";
var nn=new Array();
调用:
nn="<%=read("+sel+") %>";后台传过去的是+sel+,而不是name1
为什么?
我们通过问答的方式来为大家解答C#与JAVASCRIPT函数的相互调用:1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1答案如下: 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里用 可以调用 前台脚本以下是引用片段:
<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中引用该变量的格式为’ ’或"+ +"方法三: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"," "); 方法二:使用Literal类,然后
以下是引用片段:
private void Button2_Click(object sender, System.EventArgs e)
{
string str;
str="";
//Literal1.Visible=true;
Literal1.Text=str;
}
后台在page_load里给names赋了值在前台有个方法为页面上的文本框赋值:
function setname()
{
for(var i=1;i<=4;i++)
{
document.getElementById("name"+i).value="<%=names[i-1] %>";
}
}可是"<%names[i-1] %>"有错:当前上下文中不存在"i"这个怎么解决?
而<%=%>属于后台的
你搞混了吧
我知道的,因为在前台赋值时我选择不同的文本框时,
最后的数字是不一样的,所以我用一个变量来获取最后一个数字,
然后 <%=我想用前台的那个数字(如i)%>
得到相应数组某个位置上的值
但是后台一样可以给前台显示赋值啊for (int i = 1; i < 5; i++) {
((Label)this.FindControl("name" + i)).Text = names[i - 1];
}
<script language=javascript>
function checkUserName()
{
UserName=this.UserReg.UserName.value;
var xmlhttp;
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp=new XMLHttpRequest();
}
catch (e)
{
}
}
}
if (UserName=="")
{
msg="<img src='../images/icn_cancel.gif'> 用户名不能为空";
var ch=document.getElementById("check1");
ch.innerHTML="<font color=’#aaaaaa’>"+msg+"</font>";
return false;
} //创建请求,并使用escape对UserName编码,以避免乱码
xmlhttp.open("get","server.asp?UserName="+escape(UserName));
xmlhttp.onreadystatechange=function()
{
if(4==xmlhttp.readyState)
{
if(200==xmlhttp.status)
{
if (xmlhttp.responseText=="yes")
{
msg="<img src='../images/icn_cancel.gif'> 用户名已经存在";
}
else
{
msg="<img src='../images/icn_ok.gif'>";
}
}
else
{
msg="<img src='../images/icn_cancel.gif'> 用户名已经存在";
}
var ch=document.getElementById("check1");
ch.innerHTML=msg;
}
}
xmlhttp.send(null);
return false;
}
//-->
</script>
input type=text name="UserName" onBlur="return checkUserName();"><span id="check1"></span>这是server.asp的代码
dim rs_m,m_conn
set rs_m = server.createobject("adodb.recordset")
m_conn = "select * from Cl_User where username = '"&username&"' "
rs_m.open m_conn, conn, 1, 1
if not rs_m.bof then
response.write("yes")
else
response.Write("no")
end if
rs_m.close
set conn = nothing
http://user.qzone.qq.com/669247240/blog/1302317905