Asp.net UpdatePanel中的Jquery UI对话框正在做奇怪的事情
我有一个DIV,其中有一个asp:repeater,它根据数据将信息放在这个DIV中。然后我使用Jquery的UI对话框通过单击按钮向用户显示数据。这一切都很顺利 因此,我希望能够将记录添加到填充中继器的数据中。我在屏幕的另一部分可以输入这些数据,并使用ajax调用将其保存到数据库中。这也很有效 然后,我想更新对话框中的数据,而不必向服务器进行完整的回发。所以,这通常很容易。我将我的div放入一个UpdatePanel中,并从Jquery启动一个doPostBack。然后刷新数据,这也可以顺利地工作到某一点 完成_doPostBack后,div将不再隐藏。它现在显示在我的页面上(请记住更新的数据),但是我用来显示对话框的javascript现在不再工作 一些调查表明:Asp.net UpdatePanel中的Jquery UI对话框正在做奇怪的事情,asp.net,jquery,asp.net-ajax,updatepanel,Asp.net,Jquery,Asp.net Ajax,Updatepanel,我有一个DIV,其中有一个asp:repeater,它根据数据将信息放在这个DIV中。然后我使用Jquery的UI对话框通过单击按钮向用户显示数据。这一切都很顺利 因此,我希望能够将记录添加到填充中继器的数据中。我在屏幕的另一部分可以输入这些数据,并使用ajax调用将其保存到数据库中。这也很有效 然后,我想更新对话框中的数据,而不必向服务器进行完整的回发。所以,这通常很容易。我将我的div放入一个UpdatePanel中,并从Jquery启动一个doPostBack。然后刷新数据,这也可以顺利地
有没有一种方法可以在updatepanels回发后注入javascript,从而再次正确执行和创建对话框?解决方案是根本不使用Updatepanel,只使用通过jquery ajax调用接收的数据更改div的innerHTML。我找到了另一种解决方案。我将对话框初始化放在在名为SetupDialog的单独函数中创建脚本,而不是位于
$(函数(){});
块中
然后,我在页面加载中使用了ScriptManager.RegisterStartupScript
来注册脚本,以便每次更新面板更新时脚本都会运行:
ScriptManager.RegisterStartupScript(this, GetType(), "SetupDialog", "SetupDialog();", true);
在这种情况下,该对话框仅在更新了UpdatePanel之后才能工作。如果在此之前需要该对话框,则也可以在
$(函数(){});
块中调用SetupDialog。除非可以调用自定义函数,我不知道你怎么做。我们可以看到代码吗?我已经解决了这个问题。我没有使用updatepanel刷新我的网格内容,而是通过ajax调用返回HTML,并在插入完成后设置div的innerhtml。工作正常,不需要更新面板。谢谢,因为你从我的评论中可以看出,这正是我最终所做的。