读书人

ASP.NRT 关于JS调用后台代码怎么实现?

发布时间: 2012-09-18 16:21:42 作者: rapoo

ASP.NRT 关于JS调用后台代码如何实现?急
我现在想实现的是在页面上点击 超链接 调用页面的JS方法,在JS方法中调用后台代码并返回值,在JS中根据后台返回值确定跳转页面,我写的代码如下,但在调试中发现只是在页面初始化时会自动调用后台方法(CheckOrderType),而在页面中点击超链接却没有调用后台方法(CheckOrderType),望高手帮忙看看。
JS代码:
<script type="text/javascript">
function NewWindowSLLR(P, Q, PC) {

var a = "spdm=" + P + "&orderdm=" + Q + "&pici=" + PC;
var result = '<%=CheckOrderType("'+Q+'") %>';

if (result == "1") {
window.open('../Agent/Manage/SLLR.aspx?' + a, '_blank', 'height=400, width=1024, top=300, left=300, toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=no, status=no');
} else {
window.open('../Agent/Manage/SLLRNEW.aspx?' + a, '_blank', 'height=400, width=1024, top=300, left=300, toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=no, status=no');
}


}
</script>

页面代码:
<a href="javascript:void(0);" onclick="NewWindowSLLR('<%# Eval("SPDM") %>','<%=orderdm %>','<%# Eval("OD_PICI") %>');"class="wenzi_link">明细</a>

后台代码:
public int CheckOrderType(string orderDM)//string orderDM
{
if (!this.IsPostBack)
{
return -1;
}
else
{
if (!string.IsNullOrEmpty(orderDM))
{
return ListSPQDLBL.GetOrderType(orderDM);
}
else
{
return -1;
}
}
}

我现在希望的效果是,点击超链接,调用JS方法,在JS方法中调用后台方法,后台方法返回值,确定在JS中具体跳转的页面。急,望高手赐教。

[解决办法]
或者采用回调的方法执行

HTML code
<%@ Page Language="C#" EnableViewState="false" %><%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  private string ReturnBackValue = " 返回到客户端的内容 | ";  //声明函数,用来返回到客户端。  public string GetCallbackResult()  {    return ReturnBackValue;//将结果返回客户端  }  //声明一个函数,用来接收客户端的参数;函数名字不可以随便,必须是RaiseCallbackEvent才可以  public void RaiseCallbackEvent(String eventArgument)  {    this.ReturnBackValue += eventArgument;  }</script><html xmlns="http://www.w3.org/1999/xhtml"><head>  <title></title>  <script type="text/javascript">    function myfunction(arg) {      <%=Page.ClientScript.GetCallbackEventReference(Page, "arg", "showMsg","")%>;    }    function showMsg(rValue) {      alert(rValue);    }    alert("刷新测试");  </script></head><body>  <form id="form1" runat="server">  <input type="button" onclick="myfunction('客户端传入的参数')" value="无刷新调用" />  </form></body></html>
[解决办法]
在你看到页面效果的时候,页面和服务器已经没有关系了。
[解决办法]
<script language ="javascript" type="text/javascript">
document.getElementById ("lbClose").click()
</script>
<asp:LinkButton ID="lbClose" Text ="返回上一页面" OnClick="lbClose_Click" runat="server"></asp:LinkButton>


可以试下
[解决办法]
建议用AJAX调用。
根据后台页面response的值来判断。
AJAX思路简单,一看就明白,去百度搜索。

回调我觉的思路上比AJAX稍微罗嗦些。

读书人网 >asp.net

热点推荐