我现在是在JS函数中这样function To(s)
{
var a="1";
var a1="<%=Open("+a+") %>";
}
CS中: public string Open(string a)
{
if (a.Equals("1"))
{
openwin();
return a;
}
else
{
return null;
}
}现在是好像不起作用?这个值没传进去啊
{
var a="1";
var a1="<%=Open("+a+") %>";
}
CS中: public string Open(string a)
{
if (a.Equals("1"))
{
openwin();
return a;
}
else
{
return null;
}
}现在是好像不起作用?这个值没传进去啊
解决方案 »
- OleDbCommandBuilder 更新access数据库出错!急~~~~~~~~```
- 如何修改文本数据??
- 关于gridview 标头问题
- 发布新程序时出现问题,大家帮忙看看!
- 怎样才能将另一Access表动态地导入到当前Access文件中,SQL怎样写?
- 谢谢 大家了 我的 OleDbDataAdapter 为什么不能更新到 数据库
- web上怎么让owc能够载入一个.xls文档
- 人手不够,欢迎精通VB、熟练C#优秀人士加盟,有要跳槽的过来看看。上海。
- C# webBrowser打开网页并自动填表问题
- Windows服务错误。
- c#做的用户登陆界面
- 请解释一下将图片二进制方式保存到数据库的代码
var a1='<%=Open("'+a+'") %>';
[System.Web.Services.WebMethod]
// 注意,要让前台调用的方法,一定要是public和static的
public static string aaa(string name)
{
string result = "Hello:" + name;
return result;
}
<script type="text/javascript">
function btnClick(){
// 调用页面后台方法,前面跟方法所需的参数,接着是方法回调成功时要执行的js函数,最后一个是方法回调失败时要执行的js函数
PageMethods.aaa("you",funReady,funError);
}
// result 就是后台方法返回的数据
function funReady(result){
alert(result);
}
// err 就是后台方法返回的错误信息
function funError(err){
alert("Error:" + err._message );
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<input type="button" onclick="btnClick()" value="test" /> 方法2:
function Show()
{
var v = "中国";
var s = '<%=CsharpVoid("'+v+'") %>'; // 你好!“+V+”
alert(s);
}
protected string CsharpVoid(string strCC)
{
strCC = "你好!" + strCC;
return strCC;
}
<input type="button" onclick="Show()" value="hhhh" />
//接受并处理服务器方法执行返回的结果
function To(s)
{
var a="1";
CallServerMethod(a,null);
}
//接受并处理服务器方法执行返回的结果
function Success(args, context) {
//通过args可以拿到服务器的返回值
//message.innerHTML = args;
}
//当接收服务器返回的结果发生了异常时调用的方法
function Error(args, context) {
//message.innerHTML = "发生了异常";
}//实现ICallbackEventHandler接口
public partial class CallBack_Pro_Callback : System.Web.UI.Page,ICallbackEventHandler
{
string result = string.Empty;
//服务器执行的方法
protected void Page_Load(object sender, EventArgs e)
{
ClientScriptManager csm = Page.ClientScript;
//获取回调引用,会在客户端生成WebForm_DoCallback方法
//最后一个参数:TRUE表示执行异步回调,FALSE表示执行同步回调
String reference = csm.GetCallbackEventReference(this, "args", "Success", "", "Error", false);
String callbackScript = "function CallServerMethod(args,context) {\n" +
reference + ";\n}";
//注册js脚本代码
csm.RegisterClientScriptBlock(this.GetType(), "CallServerMethod", callbackScript, true);
} #region ICallbackEventHandler 成员
//定义返回回调方法执行结果的方法
public string GetCallbackResult()
{
return result;
//throw new NotImplementedException();
}
//在服务器端执行的页面回调方法
public void RaiseCallbackEvent(string eventArgument)
{
if (eventArgument.Equals("1"))
{
openwin();
return eventArgument;
}
else
{
return null;
}
//throw new Exception(); //发生异常时,调用客户端的Error()方法
} #endregion
}
2、在前台写一个js函数,内容为document.getElementById("btn1").click();
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
但是这个方法有一个不足,就是把当前页给刷新了!
除了 ICallbackEventHandler 接口, 你可以使用 xhr 对象也可以使用 js 框架 eg: jQ ,prototype
你这个报错啊
//在服务器端执行的页面回调方法
public void RaiseCallbackEvent(string eventArgument)
{
if (eventArgument.Equals("1"))
{
openwin();
return eventArgument;
}
else
{
return null;
}错误 88 由于“top.RaiseCallbackEvent(string)”返回 void,返回关键字后面不得有对象表达式
#region ICallbackEventHandler 成员
//定义返回回调方法执行结果的方法
public string GetCallbackResult()
{
return result;
//throw new NotImplementedException();
}
//在服务器端执行的页面回调方法
public void RaiseCallbackEvent(string eventArgument)
{
if (eventArgument.Equals("1"))
{
openwin();
result = eventArgument;
}
else
{
result = "";
}
//throw new Exception(); //发生异常时,调用客户端的Error()方法
} #endregion
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
function ajaxPost() {
var value = document.getElementById('<%=txt.ClientID%>').value;
CallServerMethod(value, null);
} function Success(args, context) {
if (args != 'error') {
alert(args);
}
}
function Error(args, context) {
alert('error');
} </script>
</head>
<body>
<form id="form1" runat="server">
please enter 1
<asp:TextBox ID="txt" runat=server></asp:TextBox>
<asp:Button ID="btn" runat="server" OnClientClick="ajaxPost();return false;" Text="Click Me" />
</form>
</body>
</html>
private string result = "error"; protected void Page_Load(object sender, EventArgs e)
{
string reference = ClientScript.GetCallbackEventReference(this, "args", "Success", "", "Error", false);
string callbackScript = "function CallServerMethod(args,context) {\n" +
reference + ";\n}";
//注册js脚本代码
ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServerMethod", callbackScript, true); } #region ICallbackEventHandler Members public string GetCallbackResult()
{ return result;
//throw new NotImplementedException();
} public void RaiseCallbackEvent(string eventArgument)
{
Open(eventArgument); //throw new NotImplementedException();
} #endregion private void Open(string value)
{
if (value.Equals("1"))
{
openwin();
result = DateTime.Now.ToString("yyyyMMdd HH:mm:ss");
}
} private void openwin()
{
// to do sth;
}page 实现 ICallbackEventHandler 接口
的方法,一会测你的,哈
实现ASP。NETAJAX的接口
混写代码可以的,是楼主没搞好。
剩下不知道了。
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
{
throw new Exception("The method or operation is not implemented.");
}
//在服务器端执行的页面回调方法
public void RaiseCallbackEvent(string eventArgument)
{
if (eventArgument.Equals("1"))
{
openwin();
result = eventArgument;
}
else
{
result = "";
}
//throw new Exception(); //发生异常时,调用客户端的Error()方法
}
//改成这样还是报错吗?错误信息是什么?
是的,走到这里出现异常:
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
{
throw new Exception("The method or operation is not implemented.");
}
我记得你有这行来?
public void RaiseCallbackEvent(string eventArgument)
{
if (eventArgument.Equals("1"))
{
openwin();
result = eventArgument;
}
else
{
result = "";
}
//throw new Exception(); //发生异常时,调用客户端的Error()方法
}
//就是这个方法啊,两个方法都是一样的,你仔细看下方法名
//注释掉throw new Exception("The method or operation is not implemented.");
//写上你想要在在服务器端执行的页面回调方法,像上面我写的这种
这样啊,具体需求是什么?
function To(s)
{
var a="1";
var a1="<%=Open("+a+") %>";
}
什么情况下需要调用?
http://topic.csdn.net/u/20100423/15/9288fe02-49f1-4965-b680-6e2e94fb2532.html
js调用按钮的点击方法即可
document.getElementById("按钮ID").click;
function Show()
{
var v = "中国";
var s = '<%=CsharpVoid("'+v+'") %>'; // 你好!“+V+”
alert(s);
}
protected string CsharpVoid(string strCC)
{
strCC = "你好!" + strCC;
return strCC;
}这种方法可以用啊! 我刚才试过了.谢谢了!
如果返回值不是string是void该怎么做
protected void CsharpVoid(string strCC)
{
strCC = "你好!" + strCC;
return strCC;
}
{
var v = "中国";
var s = '<%=CsharpVoid("'+v+'") %>'; // 你好!“+V+”
alert(s);
}
///如果返回值是void该怎么做 protected void CsharpVoid(string strCC)
{
strCC = "你好!" + strCC;
return strCC;
}