【问题标题】:InnerHtml not working with ASPInnerHtml 不适用于 ASP
【发布时间】:2013-08-05 12:40:49
【问题描述】:

我有以下测试代码:

    protected void Page_Load(object sender, EventArgs e)
    {
        MyDiv.InnerHtml = "1=" + Request.Form.Count.ToString();      // WORKING

        if (Request.Form.Count > 0)
        {
            MyDiv.InnerHtml = "2=" + Request.Form.Count.ToString();  // NOT WORKING
        }  
    }

为什么会这样?我必须使用 Page.IsPostback 功能吗?我尽量避免这种情况,因为它与我的 javascript 代码效果不佳。我在发布数据时使用 jquery ajax。

【问题讨论】:

    标签: asp.net webforms innerhtml


    【解决方案1】:

    它不起作用,因为当您进行 AJAX 调用时整个 ASP 页面没有重新加载,因此 MyDiv 没有在您的浏览器中更新。

    你需要做更多这样的事情:

    protected void Page_Load(object sender, EventArgs e)
    {
        MyDiv.InnerHtml = "1=" + Request.Form.Count.ToString();      // WORKING
    
        if (Request.Form.Count > 0)
        {
            Response.Write(Request.Form.Count.ToString());
            Response.End();
        }  
    }
    

    从代码维护的角度来看,编写一个特殊的页面或处理程序来接收 ajax 回发可能会更好,但为了简单起见,我只是坚持使用一页。

    然后在 ajax 调用的设置参数中添加类似这样的内容:

    success: function(data){
         $("<%=MyDiv.ClientId%>").innerHTML = "2=" + data.responseText;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      相关资源
      最近更新 更多