日期:2014-05-17  浏览次数:20417 次

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="s