读书人

小弟我用母版的生成的内容页实现 ICal

发布时间: 2012-01-09 21:05:41 作者: rapoo

我用母版的生成的内容页实现 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;
}
这个方法中,能进入就应该没有问题。

读书人网 >asp.net

热点推荐