asp.net JS调用后台方法时,为什么一启动就加载了?
如题:以下是代码,每次我启动的时候方法就加载一次了,然后每次都是空值,得到False前台代码://保存functionsave(){vara="<%=Savetype()...
如题:以下是代码,每次我启动的时候方法就加载一次了,然后每次都是空值,得到False
前台代码://保存
function save() {
var a = "<%=Savetype()%>";
add();
document.getElementById("fid").style.display = "none";
}
//修改保存
function upSave() {
var ss = document.getElementById('aid').value;
var up = "<%=UpdateType()%>";
update();
document.getElementById("divID").style.display = "none";
}
后台代码:
protected bool Savetype()
{
if (aid.Value == "" || aid.Value == null || bid.Value == "" || bid.Value == null)
{
return false; }
bool flg = ControlType.InsertType(aid.Value, bid.Value, cid.Value, eid.Value);
if (flg)
{
return true; }
else
{
Response.Write("保存失败!");
return false;
}
}
protected boolUpdateType()
{
if (aid.Value == "" || aid.Value == null || bid.Value == "" || bid.Value == null)
{
return false;
}
bool flg = ControlType.UpdateStaff(aid.Value, bid.Value, cid.Value, eid.Value);
if (flg)
{
return true }
else
{
return false; } 展开
前台代码://保存
function save() {
var a = "<%=Savetype()%>";
add();
document.getElementById("fid").style.display = "none";
}
//修改保存
function upSave() {
var ss = document.getElementById('aid').value;
var up = "<%=UpdateType()%>";
update();
document.getElementById("divID").style.display = "none";
}
后台代码:
protected bool Savetype()
{
if (aid.Value == "" || aid.Value == null || bid.Value == "" || bid.Value == null)
{
return false; }
bool flg = ControlType.InsertType(aid.Value, bid.Value, cid.Value, eid.Value);
if (flg)
{
return true; }
else
{
Response.Write("保存失败!");
return false;
}
}
protected boolUpdateType()
{
if (aid.Value == "" || aid.Value == null || bid.Value == "" || bid.Value == null)
{
return false;
}
bool flg = ControlType.UpdateStaff(aid.Value, bid.Value, cid.Value, eid.Value);
if (flg)
{
return true }
else
{
return false; } 展开
展开全部
你这个是想干嘛,你这样写本来就是加载完html之前就会调用后台方法,反馈值!
如果你前台想调用后台的方法可以这样用啊:
前台js:
__doPostBack('Savetype', '');
or
__doPostBack('UpdateType', '');
后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
//获得前台传入的参数,根据需要调用后台方法
switch (Request["__EVENTTARGET"])
{
case "Savetype":
//这个是你在后台实现的方法
Savetype();
case "UpdateType":
//这个是你在后台实现的方法
UpdateType();
default:
break;
}
}
}
如果你前台想调用后台的方法可以这样用啊:
前台js:
__doPostBack('Savetype', '');
or
__doPostBack('UpdateType', '');
后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
//获得前台传入的参数,根据需要调用后台方法
switch (Request["__EVENTTARGET"])
{
case "Savetype":
//这个是你在后台实现的方法
Savetype();
case "UpdateType":
//这个是你在后台实现的方法
UpdateType();
default:
break;
}
}
}
追问
没看懂你的意思,我只是想问有没有什么方法可以一启动的时候不加载后台方法
追答
根据你的代码修改成这样
前台
function save() {
__doPostBack('Savetype', '');
add();
document.getElementById("fid").style.display = "none";
}
后台
//这一段是后台cs文件的东西,是页面加载事件。
protected void Page_Load(object sender, EventArgs e)
//这句的意思是(页面不是第一次加载)
if (IsPostBack)
//这句的意思是获得你前台js通过 __doPostBack('Savetype', '');传给后台的Savetype,判断你传了什么值,然后根据这个值,来调用你写的方法
switch (Request["__EVENTTARGET"])
{
case "Savetype":
Savetype();
case "UpdateType":
UpdateType();
default:
break;
}
//也就是你之前写的
后台代码:
protected bool Savetype()
{
if (aid.Value == "" || aid.Value == null || bid.Value == "" || bid.Value == null)
{
return false; }
bool flg = ControlType.InsertType(aid.Value, bid.Value, cid.Value, eid.Value);
if (flg)
{
return true; }
else
{
Response.Write("保存失败!");
return false;
}
}
如果这样你还不能明白我就无能为力了。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询