1. 使用js如何调用ASP.NET的后台方法
用jquery的ajax就可以的,实例如下:
<script src="Jquery/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#btnOK").click(function() {
$.ajax({
//要用post方式
type: "POST",
//方法所在页面和方法名
url: "AjaxPage.aspx/ABC",
data: "{abc:111}", //带参数的,参数名称abc,参数“111”
//date:"{}",//没有参数的初始化
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//返回的数据用data.d获取内容
alert(data.d);
}
});
});
});
</script>
<body>
<form id="form1" runat="server">
<asp:Button ID="btnOK" runat="server" Text="ShowText" />
</form>
</body>
后台:引入using System.Web.Services;
[WebMethod]
public static string ABC(string abc) //带参数的方法
{
return abc;
}
webconfig下得有如下配置节:
<httpMoles>
<add name="ScriptMole" type="System.Web.Handlers.ScriptMole, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpMoles>
这个在vs2008里是可行的,版本低的话,可能不能直接这么调用
2. 如何用js将后端取出的数据填进表格里面
function getMoleInfo() {
$.ajax({
type: "GET",
dataType: "json",
url: "../Handler/TestHandler.ashx?Method=GetMoleInfo",
//data: { id: id, name: name },
success: function(json) {
var typeData = json.Mole;
$.each(typeData, function(i, n) {
var tbBody = ""
var trColor;
if (i % 2 == 0) {
trColor = "even";
}
else {
trColor = "odd";
}
tbBody += "<tr class='" + trColor + "'><td>" + n.MoleNum + "</td>" + "<td>" + n.MoleName + "</td>" + "<td>" + n.MoleDes + "</td></tr>";
$("#myTb").append(tbBody);
});
},
error: function(json) {
alert("加载失败");
}
});
}
第一:建立Default.aspx页面
<html>
<head runat="server">
<title>ajax图片上传</title>
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="js/jquery.form.js" type="text/javascript"></script>
<script type="text/javascript">
function upload(){
var path = document.getElementById("File1").value;
var img = document.getElementById("img1");
if($.trim(path)==""){
alert("请选择要上传的文件");
return;
}
$("#form1").ajaxSubmit({
success: function (str) {
if(str!=null && str!="undefined"){
if (str == "1") {alert("上传成功");document.getElementById("img1").src="images/logo.jpg?"+new Date();/*上传后刷新图片*/}
else if(str=="2"){alert("只能上传jpg格式的图片");}
else if(str=="3"){alert("图片不能大于1M");}
else if(str=="4"){alert("请选择要上传的文件");}
else {alert('操作失败!');}
}
else alert('操作失败!');
},
error: function (error) {alert(error);},
url:'Handler.ashx', /*设置post提交到的页面*/
type: "post", /*设置表单以post方法提交*/
dataType: "text" /*设置返回值类型为文本*/
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<input id="File1" name="File1" type="file" />
<input id="iptUp" type="button" value="上传Logo" onclick="upload()"/>
<img id="img1" alt="网站Logo" src="images/weblogo.jpg" />
</form>
</body>
</html>
4. js 怎么载入外部html文件
比如说,现在有一个外部的html文件test.html,内容是:
<inputtype="button"value="外部文件按钮"/>
<p>外部文件p标签</p>
现在在这个网页中加载test.html中的内容,这个网页的源码为:
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title></title>
<scriptsrc="../Scripts/jquery-1.8.2.min.js"></script>
<scripttype="text/javascript">
functionGetHtml(){
$.ajax({
type:"POST",
url:'Handler.ashx',//提交到一般处理程序请求数据
success:LoadHtml
});
}
functionLoadHtml(data){
vardiv=document.getElementById("out");
div.innerHTML=data;//注意这里,要是想展示test.heml中的内容就用这个,如果显示源代码则用innerText
}
</script>
</head>
<body>
<inputtype="button"value="加载外部Html文件内容"onclick="GetHtml()"/>
<divid="out">
</div>
</body>
</html>
上面脚本中写的Handler.ashx是一个一般处理程序,代码是这样的:
publicvoidProcessRequest(HttpContextcontext)
{
context.Response.ContentType="text/plain";
stringhtml=GetOutsideContent("test.html");
context.Response.Write(html);
}
(stringPath)
{
try
{
StreamReadersr=newStreamReader(HttpContext.Current.Server.MapPath(Path),System.Text.Encoding.GetEncoding("utf-8"));
stringcontent=sr.ReadToEnd().ToString();
sr.Close();
returncontent;
}
catch
{
return"错误";
}
}
publicboolIsReusable
{
get
{
returnfalse;
}
}
这是asp.net下的,如果你是使用其他语言的都大同小异,从后台读取文件中的内容,使用Ajax获取后台传递的文件中的内容,思路就是这样。