首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ICallbackEventHandler,RaiseCallbackEvent未触发

ICallbackEventHandler,RaiseCallbackEvent未触发
EN

Stack Overflow用户
提问于 2011-11-29 04:06:23
回答 2查看 3K关注 0票数 0

我有以下Javascript:

代码语言:javascript
复制
        function processText(n)
        {                
            CallServer("1" + n.id + "&" + n.value, "");
        }

        function ReceiveServerData(arg, context)
        {
            alert(arg);
        }

下面是我的代码隐藏:

代码语言:javascript
复制
 protected void Page_Load(object sender, EventArgs e)
    {
        ClientScriptManager cm = Page.ClientScript;
        String cbRef = cm.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");

        String callbackscript = "function CallServer(arg, context) {" + cbRef + "; }";
        cm.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackscript, true);

        if (Request.QueryString["stationID"] != null)
        {
            isIndividual = true;
            stationID = Request.QueryString["stationID"];

            EncodeDecode objServers = new EncodeDecode(HttpContext.Current.Server.MapPath("~/App_Data/"));

            if (!IsPostBack)
            {
                List<IServerConfig> serverConfig = objServers.GetServerConfiguration(stationID);
                Session["ServerConfig"] = serverConfig;
                Session["dctPropertyControls"] = new Dictionary<string, PropertyObj>();
            }

            BindDynamicControls(Session["ServerConfig"] as List<IServerConfig>);
        }
    }

    public void RaiseCallbackEvent(String eventArgument)
    {
        int iTyped = int.Parse(eventArgument.Substring(0, 1).ToString());

        if (iTyped != 0) //Process Text Fields
        {
            string controlName = eventArgument.Substring(1, eventArgument.IndexOf("&")).ToString();
            string controlValue = eventArgument.Substring(eventArgument.IndexOf("&")).ToString();
            //Txtid += -1;                

            Dictionary<string, PropertyObj> dctPropertyObj = Session["dctPropertyControls"] as Dictionary<string, PropertyObj>;
            PropertyObj propertyObj = dctPropertyObj[controlName];
            propertyObj.property.SetValue(propertyObj.owner, controlValue, null);                

            this.sGetData = "Done";
        }
    }

    public String GetCallbackResult()
    {
        return this.sGetData;
    }

processText被解雇并正常工作,但是RaiseCallbackEvent从不触发。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-29 05:19:19

显然,任何类型的验证错误都会导致这种情况,尽管页面永远不会告诉您这一点。在我的例子中,我的页面上有两个具有相同id的日期分析者。我必须调试javascript并读取xmlRequest才能看到错误。

票数 0
EN

Stack Overflow用户

发布于 2011-12-16 17:53:16

如果回复晚了,很抱歉,但可能会对他人有所帮助。

.aspx页面上的ValidationRequest="false"可能会解决这个未识别的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8301656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档