标签: updatepanel

使用JavaScript进行ASP.NET回发

我有几个小的divs利用jQuerydraggable.这些div被放置在一个UpdatePanel,并在拖动器上我使用_doPostBack()JavaScript函数.我从页面表格中提取必要的信息.

我的问题是,当我调用此函数时,整个页面被重新加载,但我只想重新加载更新面板.

javascript asp.net postback updatepanel webforms

80
推荐指数
5
解决办法
23万
查看次数

Ajax更新后重新绑定jQuery中的事件(updatepanel)

我的页面上有几个输入和选项元素,每个(几乎都有)附加了一个事件,一旦它们发生变化就会更新页面上的一些文本.我用jQuery真的很酷:)

我还使用了微软的Ajax框架,利用了UpdatePanel.我之所以这样做,是因为某些元素是基于某些服务器端逻辑在页面上创建的.我真的不想解释为什么我使用UpdatePanel - 即使它可以(它可以付出相当大的努力)被重写为仅使用jQuery我仍然想要UpdatePanel.

您可能已经猜到了 - 一旦我在UpdatePanel上回发,jQuery事件就会停止工作.我实际上是在期待这个,因为"回发"并不是真正的新回发所以我在document.ready中绑定事件的代码将不再被触发.我还通过在jQuery帮助库中阅读它来证实了我的怀疑.

无论如何,在UpdatePanel完成更新DOM之后,我仍然遇到重新绑定控件的问题.我最好需要一个不需要向页面添加更多.js文件(jQuery插件)的解决方案,但是能够捕获UpdatePanel的'afterupdating'这样简单,我可以调用我的方法重新绑定所有表单元素.

asp.net jquery updatepanel asp.net-ajax

78
推荐指数
7
解决办法
7万
查看次数

如何在更新面板回发后执行javascript回调?

当用户悬停页面的某些元素时,我正在使用jQuery tip插件来显示帮助提示.

我需要在使用css选择器加载页面后注册插件事件.

问题是我使用的是ASP.NET更新面板,在第一次回发后,提示会停止工作,因为更新面板会替换页面内容,但不会重新绑定javascript事件.

在更新面板刷新其内容后,我需要一种方法来执行javascript回调,因此我可以重新绑定javascript事件以使提示再次起作用.

有没有办法做到这一点?

javascript updatepanel asp.net-ajax callback

70
推荐指数
3
解决办法
7万
查看次数

更新面板刷新后如何运行一些javascript?

我有一个pageLoad函数,它在.ascx控件上设置一些我无法更改的css.在页面加载一切正常,但当更新面板更新控件时,我的css不再应用.如何在页面更新后重新运行我的功能?

 $(function() {
        $("textarea").attr("cols", "30");
        $("input.tbMarker").css({ "width": "100px" }).attr("cols","25");
    });
Run Code Online (Sandbox Code Playgroud)

这显然只在初始页面加载时运行.如何在更新后运行它?

javascript asp.net jquery updatepanel

57
推荐指数
5
解决办法
7万
查看次数

ASP.NET UpdatePanel超时

我要求的UpdatePanel时间超过90秒.我收到此超时错误:

Microsoft JScript运行时错误:Sys.WebForms.PageRequestManagerTimeoutException:服务器请求超时.

有没有人知道是否有办法增加通话超时前的时间?

asp.net ajax updatepanel

52
推荐指数
4
解决办法
8万
查看次数

ModalPopupExtender确定按钮单击事件未触发?

我在UpdatePanel中有一个Button.该按钮用作ModalPopupExtender的OK按钮.由于某种原因,按钮单击事件未触发.有任何想法吗?我错过了什么吗?

<asp:updatepanel id="UpdatePanel1" runat="server">
    <ContentTemplate>
        <cc1:ModalPopupExtender ID="ModalDialog" runat="server" 
            TargetControlID="OpenDialogLinkButton"
            PopupControlID="ModalDialogPanel" OkControlID="ModalOKButton"
            BackgroundCssClass="ModalBackground">
        </cc1:ModalPopupExtender>
        <asp:Panel ID="ModalDialogPanel" CssClass="ModalPopup" runat="server">
            ...
            <asp:Button ID="ModalOKButton" runat="server" Text="OK" 
                        onclick="ModalOKButton_Click" />
        </asp:Panel>
    </ContentTemplate>
</asp:updatepanel>
Run Code Online (Sandbox Code Playgroud)

asp.net updatepanel modalpopupextender asp.net-ajax

43
推荐指数
5
解决办法
11万
查看次数

RegisterStartupScript不适用于ScriptManager,Updatepanel.这是为什么?

protected void timer1_Tick(object sender, EventArgs e)
    {
        foreach (RepeaterItem item in rpChat.Items)
        {
            TextBox txt = item.FindControl("txtChatMessage") as TextBox;
            if (txt != null)
            {
                message[i] = txt.Text;
                i--;
            }
        }
        lblStatusChat.Text = "";
        RepeaterBind();
        string javaScript = "<script language=JavaScript>\n" + "alert('Button1_Click client-side');\n" + "</script>";

        Page.ClientScript.RegisterStartupScript(this.GetType(), "myKey", javaScript);
    }
Run Code Online (Sandbox Code Playgroud)

timer_click触发和更新面板.并且警报消息不会显示在timer_tick事件上

asp.net updatepanel scriptmanager

41
推荐指数
3
解决办法
8万
查看次数

由UpdatePanel内的GridView内的LinkBut​​ton触发的完整回发

我在UpdatePanel中有一个GridView.在模板字段中是我用于标记项目的按钮.在功能上,这工作正常,但按钮总是触发整页回发而不是部分回发.如何让按钮触发部分回发?

<asp:ScriptManager ID="ContentScriptManager" runat="server" />
<asp:UpdatePanel ID="ContentUpdatePanel" runat="server" ChildrenAsTriggers="true">
    <ContentTemplate>
        <asp:GridView ID="OrderGrid" runat="server" AllowPaging="false" AllowSorting="false"
            AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:LinkButton ID="MarkAsCompleteButton" runat="server" Text="MarkAsComplete"
                            CommandName="MarkAsComplete" CommandArgument='<%# Eval("Id") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Name" HeaderText="Name" />
                <asp:BoundField DataField="LoadDate" HeaderText="Load Date" />
                <asp:BoundField DataField="EmployeeCutOffDate" HeaderText="Cut Off Date" />
                <asp:BoundField DataField="IsComplete" HeaderText="Is Completed" />
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

c# asp.net gridview updatepanel asp.net-ajax

38
推荐指数
3
解决办法
7万
查看次数

无法在嵌入UpdatePanel的WebControl中获取ScriptManager.RegisterStartupScript

我有我认为应该是一个相当简单的问题,但对于我的生活,我看不出我的问题.问题与ScriptManager.RegisterStartupScript有关,这是我之前多次使用过的.

我的场景是我有一个插入页面的自定义Web控件.控件(以及一个或两个其他)嵌套在UpdatePanel中.它们被插入到PlaceHolder的页面上:

<asp:UpdatePanel ID="pnlAjax" runat="server">
  <ContentTemplate>
    <asp:PlaceHolder ID="placeholder" runat="server">
    </asp:PlaceHolder>
    ...

protected override void OnInit(EventArgs e){
  placeholder.Controls.Add(Factory.CreateControl());
  base.OnInit(e);
}
Run Code Online (Sandbox Code Playgroud)

这是页面上唯一的更新面板.

控件需要运行一些初始的javascript才能正常工作.控制电话:

ScriptManager.RegisterStartupScript(this, GetType(), 
                                    Guid.NewGuid().ToString(), script, true);
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

ScriptManager.RegisterStartupScript(Page, Page.GetType(), 
                                    Guid.NewGuid().ToString(), script, true);
Run Code Online (Sandbox Code Playgroud)

问题是脚本在首次显示页面时正确运行,但在部分回发后不会重新运行.我尝试过以下方法:

  1. 从CreateChildControls调用RegisterStartupScript
  2. 从OnLoad/OnPreRender调用RegisterStartupScript
  3. 对前两个参数使用不同的参数组合(在上面的例子中,Control是Page和Type是GetType(),但我尝试过使用控件本身等).
  4. 我尝试过使用持久性和新的ID(不是我认为这应该会产生重大影响).
  5. 我使用了一些断点,因此验证了正确调用了寄存器行.

我唯一没有尝试的是使用UpdatePanel本身作为控件和类型,因为我不相信控件应该知道更新面板(并且在任何情况下似乎都没有获得更新的好方法面板?).

任何人都可以看到我在上面做错了什么吗?

谢谢 :)


好吧,回答上面的查询 - 它看起来好像占位符以某种方式混淆了ScriptManager.RegisterStartupScript.

当我将控件拉出占位符并将其直接编码到页面上时,Register脚本正常工作(我也将控件本身用作参数).


ScriptManager.RegisterStartupScript(this, GetType(), Guid.NewGuid().ToString(), script, true);

任何人都可以解释为什么注入控件到PlaceHolder会阻止ScriptManager正确注册脚本?我猜这可能与动态控件的生命周期有关,但如果有一个正确的上述过程,我会欣赏(据我所知).

c# asp.net ajax updatepanel scriptmanager

33
推荐指数
3
解决办法
11万
查看次数

如何在加载特定的UpdatePanel后调用客户端javascript函数

如何在加载特定更新面板后调用客户端javascript方法?

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler) 对我来说不起作用,因为这会在任何更新面板完成加载后触发,我找不到客户端方法来找到哪一个

ScriptManager.GetCurrent(Page).AsyncPostBackSourceElementID AsyncPostBackSourceElementID 不适合我,因为这是一个服务器端对象,我想要客户端

ClientSide .Net框架必须知道它正在更新哪个UpdatePanel才能更新正确的内容.当然有一种方法来吸引这个事件?

任何帮助,将不胜感激.

javascript asp.net ajax updatepanel

32
推荐指数
2
解决办法
4万
查看次数