GetPostBackEventReference vs GetPostBackClientHyperlink
ClientScriptManager.GetPostBackEventReference 方法和ClientScriptManager.GetPostBackClientHyperlink方法的功能是一样的,都是在客户端生成脚本,当控件的特定事件触发时,可以回发至服务器。
他们在客户端的表现形式有点不同,GetPostBackClientHyperlink表现为:javascript:__doPostBack('mycontrol1','myanchor1'),GetPostBackEventReference 表现为::__doPostBack('mycontrol1','myanchor1')。
能用GetPostBackEventReference的地方,应该是都能用GetPostBackClientHyperlink它来代替(个人观点,仅供参考)。但是,能用GetPostBackClientHyperlink的地方,就不一定了,我参看了一下这两个方法的源码,在GetPostBackClientHyperlink方法的内部,调用GetPostBackEventReference。
他们在客户端的表现形式有点不同,GetPostBackClientHyperlink表现为:javascript:__doPostBack('mycontrol1','myanchor1'),GetPostBackEventReference 表现为::__doPostBack('mycontrol1','myanchor1')。
能用GetPostBackEventReference的地方,应该是都能用GetPostBackClientHyperlink它来代替(个人观点,仅供参考)。但是,能用GetPostBackClientHyperlink的地方,就不一定了,我参看了一下这两个方法的源码,在GetPostBackClientHyperlink方法的内部,调用GetPostBackEventReference。
internal string GetPostBackClientHyperlink(Control control, string argument, bool escapePercent, bool registerForEventValidation)
{
return ("javascript:" + this.GetPostBackEventReference(control, argument, escapePercent, registerForEventValidation));
}
我所疑惑的是,既然能用GetPostBackEventReference都可以用GetPostBackClientHyperlink来代替(个人观点,仅供参考),微软为什么不合并成一个方法的呢?这样大家使用的时候,也不用想考虑这两个方法的不同了。希望有朋友能给出一个合理的解释。 {
return ("javascript:" + this.GetPostBackEventReference(control, argument, escapePercent, registerForEventValidation));
}