私は 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 "@#$";
}
}