我用母版的生成的内容页实现 ICallbackEventHandler 接口的奇怪问题
我用母版的生成的内容页继承 ICallbackEventHandler 接口,并实现了 RaiseCallbackEvent、GetCallbackResult 接口,但在客户端异步调用没有任何效果。
经过偶对客户端脚本的单步跟踪发现,客户端没有任何问题(XMLHTTP 调用是成功的)。
问题因该是发生在服务器端:为了测试,偶在类里面添加了构造函数并设置中断,发现客户端异步回发服务器时,服务器端的构造函数被执行,说明客户端回发成功,但 .NET 框架却没有调用接口 RaiseCallbackEvent、GetCallbackResult 等方法。
偶实在搞郁闷了,拜托大家没指教一下。
客户端脚本如下:
<script type= "text/javascript ">
function <%= this.ddlArea.ClientID %> _Change(obj)
{
var value = parseInt(obj.value);
var ddlCity = document. <%= this.Form.ClientID + ". " + this.ddlCity.ClientID %> ;
if(isNaN(value))
{
alert(_ScriptError);
return;
}
ddlCity.options.length = 0;
<%= this.ClientScript.GetCallbackEventReference(this, "\ "a\ " ", "__test ", null) %> ;
}
function __test(value)
{
alert(value);
}
</script>
页面源代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Ahcom.Data;
public partial class search_Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
TextBox txtSearch;
HiddenField hdnSearch;
Button btnSearch;
string CallBackValue;
public search_Default()
{
}
protected void Page_Load(object sender, EventArgs e)
{
this.Title = "信息库 ";
this.txtSearch = (TextBox)this.Master.FindControl( "txtSearch ");
this.hdnSearch = (HiddenField)this.Master.FindControl( "hdnSearch ");
this.btnSearch = (Button)this.Master.FindControl( "btnSearch ");
this.btnSearch.Click += new EventHandler(btnSearch_Click);
if (!this.IsPostBack)
{
this.ddlArea.DataTextField = "Name ";
this.ddlArea.DataValueField = "ID ";
DbInstance.DataBind(this.ddlArea, "SELECT [ID], [Name], [Description] FROM [GBC_Area] WHERE [Country] = 1 ");
ListItem li = new ListItem( "选择省份 ", "0 ");
li.Selected = true;
this.ddlArea.Items.Insert(0, li);
this.ddlArea.Attributes.Add( "onchange ", this.ddlArea.ClientID + "_Change(this); ");
}
else
{
//Resources.Script.SearchResetFiltr
}
}
void btnSearch_Click(object sender, EventArgs e)
{
if (this.IsValid)
{
int type;
int.TryParse(this.hdnSearch.Value, out type);
//switch (type)
//{
// case 2:
// Response.Redirect( "buy.aspx?key=
//}
}
}
#region ICallbackEventHandler 成员
public string GetCallbackResult()
{
return "aa ";
}
public void RaiseCallbackEvent(string eventArgument)
{
return;
}
#endregion
}
[解决办法]
来也
[解决办法]
奥~~my god,我来JF`
[解决办法]
你应该调适一下,看能不能进入
public void RaiseCallbackEvent(string eventArgument)
{
string str=string.empty
return;
}
这个方法中,能进入就应该没有问题。