1

私は Web アプリケーションに取り組んでおり、ページでツリー ボタンが押されたときにコード ビハインドから ac# 関数を起動する必要があります。ノードを見つけるコードをいくつか見つけましたが、JS から呼び出そうとすると c# 関数が認識されないようです。

<script type = "text/javascript">

function OnLoad() {
   var links = document.getElementById("<%=navTree.ClientID %>").getElementsByTagName("a");
   for (var i = 0; i < links.length; i++) {
     links[i].setAttribute("href", "javascript:NodeClick(\"" + links[i].id + "\", \"" + links[i].getAttribute("href") + "\")");
   }
}

window.onload = OnLoad;

function NodeClick(id, attribute) {
  //Do Something
  alert(nodeLink.innerHTML + " clicked" + PageMethods.node_Click());         
  eval(attribute);
}

</script>

ここに私のC#コードがあります:

[WebMethod]
public static string node_Click()
{
  return "@#$";
}

アラートから PageMethods.node_Click() 呼び出しを削除すると、正常に機能しますが、呼び出しでは機能しません。また、PageMethods を入力しているときに気付きました。私の関数はピリオドの後にポップリストに表示されません(VSで)

何か案は?

また、私のcsファイルは次のとおりです。

public partial class SiteMaster : MasterPage
{
  protected void Page_Load(object sender, EventArgs e)
  {
  }

  [WebMethod]
  public static string node_Click()
  {
    return "@#$";
  }
}
4

1 に答える 1