我正在使用主页和内容页面。 我的客户端功能是 -
<script type="text/javascript">
function StateChange(txtState) {
var state = document.getElementById(txtState);
PageMethods.StateSelectionChange(state.value, OnSuccess, onFailed);
}
function OnSuccess(state, userContext, methodName) {
alert(state);
}
function onFailed(state, userContext, methodName) {
alert(state);
}
</script>
和服务器端代码是 -
public static string StateSelectionChange(string state)
{
//txtCity.Text = "";
//if (txtState.Text != "")
//{
// SqlDataReader dr = cm.Allstate(txtState.Text);
// if (dr.Read())
// {
// con.Close();
// AutoCompleteExtender2.ContextKey = txtState.Text;
// txtCity.Enabled = true;
// txtCity.Focus();
// }
// else
// {
// con.Close();
// ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "Alert", "alert('State is not exist');", true);
// txtState.Text = "";
// txtState.Focus();
// }
//}
return (state);
}
由于将该函数声明为static,我无法访问该代码的注释部分(文本框和类主函数)。如果我从此函数中删除静态字,则不应从客户端调用它。
最后,我想使用Java脚本/ ajax请求从客户端调用非静态函数。
答案 0 :(得分:0)
您不能这样做,因为所有控件都是实例,您只能从静态方法访问静态成员。我使用的一个解决方法是将控制值作为参数传递给服务器端方法。