当前位置: 首页 > 面试题库 >

使用.NET中的JavaScript确定在pageLoad()中是否发生以及发生了哪些部分回发

公良鸿风
2023-03-14
问题内容

据我了解,使用ASP.NET AJAX进行部分页面更新会导致调用JavaScript pageLoad()事件处理程序。

我的问题:在pageLoad()函数中是否有一种通用的JavaScript确定方法…

i)回发是否是部分页面更新。

ii)如果是,则更新哪个面板。

我的应用程序使用.NET UpdatePanels和Telerik
RadAjaxPanels的组合。我正在寻找一种通用(最好是JavaScript)解决方案,该解决方案不需要我为每个面板指定唯一的客户端回调函数,也不需要在每个回发事件处理程序中设置一些标志以将其自身标识给客户端。


问题答案:

要确定回发是否是部分更新,可以使用ScriptManager.GetCurrent(this.Page).IsInAsyncPostBack。这是一个例子:

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        // get a reference to ScriptManager and check if we have a partial postback
        if (ScriptManager.GetCurrent(this.Page).IsInAsyncPostBack)
        {
            // partial (asynchronous) postback occured
            // insert Ajax custom logic here
        }
        else
        {
            // regular full page postback occured
            // custom logic accordingly                
        }
    }
}

要获取导致回发的更新面板,您可以对其进行调查ScriptManager.GetCurrent(Page).UniqueID和分析。这是一个这样做的例子:

public string GetAsyncPostBackControlID()
{
    string smUniqueId = ScriptManager.GetCurrent(Page).UniqueID;
    string smFieldValue = Request.Form[smUniqueId];

    if (!String.IsNullOrEmpty(smFieldValue) && smFieldValue.Contains("|"))
    {
        return smFieldValue.Split('|')[0];
    }

    return String.Empty;
}


 类似资料:
  • 问题内容: 我试图说服自己,该子句中采取的操作在函数返回 之前发生 (从内存一致性的角度来看)。从JVM规范,很显然,在一个线程中,程序顺序应该是驱动 之前发生 关系-如果 一个 发生 b 按照程序顺序,然后 一 前发生 b 。 但是,我没有看到任何明确说明最终 会在 返回 之前发生的 东西,是吗?或者,编译器是否可以通过某种方式对子句进行重新排序,因为它只是在记录日志。 激励示例:我有一个线程从

  • 在C++14中,关于不定值和未定义行为的一些变化是否导致了示例中的这种变化?

  • 我遇到的问题是:a.)每个endpoint在Swagger输出中呈现的路由不是以Major.Minor格式(即:V1.0),而是“/API/v1/...”。我希望路由是“/API/v1.0/...”。有人知道如何解决这个问题吗?b.)不管我从页面顶部的下拉列表中选择哪个API版本,Swagger都会产生所有endpoint(对于V1.0和V2.0),我相信正确的功能应该是筛选只显示所选版本的end

  • 本文向大家介绍MapReduce中排序发生在哪几个阶段?这些排序是否可以避免?为什么?相关面试题,主要包含被问及MapReduce中排序发生在哪几个阶段?这些排序是否可以避免?为什么?时的应答技巧和注意事项,需要的朋友参考一下 解答: 一个MapReduce作业由Map阶段和Reduce阶段两部分组成,这两阶段会对数据排序,从这个意义上说,MapReduce框架本质就是一个Distributed

  • 问题内容: 我在组件上有一个Java MouseListener来检测鼠标的按下。我如何 知道鼠标按下发生在哪个监视器上? 我想要达到的效果是:当用户在 我的应用程序中按下鼠标按钮时,弹出窗口会显示一些信息,直到释放鼠标为止。我想 确保此窗口位于用户单击的位置,但是我需要调整 窗口在当前屏幕上的位置,以便整个窗口 可见。 问题答案: 您可以从获取显示信息。您可以使用它来获取有关本地系统的信息。包括

  • 问题内容: 现有应用程序的类路径中有大量的JAR文件。一定要确保最初添加了所有JAR。显然没有使用某些JAR,我们已经删除了其中一些不需要的JAR,而没有引起任何问题。 如何确定正在使用哪些JAR,哪些是不需要的(除尝试和错误方法外)? 问题答案: Tattletale是一个很好的工具。它对字节码起作用,因此有可能通过反射使用某些类,而这些类不会出现在报告中。 这里( 链接不再有效 )是示例报告。