【问题标题】:usercontrol dissapears when using update panel使用更新面板时用户控件消失
【发布时间】:2011-07-08 05:58:00
【问题描述】:

我有一个用户控件,它充当我网站的页脚,并使用 java 脚本 jqdock.js 来显示苹果类型的底部菜单。我向用户控件添加了一个更新面板。我现在遇到的问题是,它最初可以正常工作,但是一旦我单击用户控件中的邮件按钮,整个用户控件就会消失,我猜在回发之后。下面是用户控件和代码视图:

enter code here

public void Page_Load(object sender, EventArgs e) {

   // Page.ClientScript.RegisterClientScriptInclude("bottomMenu", "../js/jqDock.js");
    ScriptManager.RegisterClientScriptInclude(this,this.GetType(),"bottomMenu", "../js/jqDock.js");
    //ScriptManager.RegisterStartupScript(this, this.GetType(), "bottomMenu", "../js/jqDock.js",true);
   }

//设计视图

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ucBottomMenu.ascx.cs"
Inherits="uc_ucBottomMenu" %>
<div id="dockWrapper" style="position: fixed; background: url('user/use.png');
padding: 10px; margin: 0 auto; width: 700px; height: 100px;" class="noprint">

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="dock">

  <asp:PlaceHolder ID="phEmail" runat="server"><a id="hplEmail" runat="server">
        <src="/dock/email.png" title="Email" alt="Email" /></a> </asp:PlaceHolder>



         </asp:PlaceHolder>


</div>
</ContentTemplate>
</asp:UpdatePanel>

【问题讨论】:

  • 对不起 *

标签: c# javascript asp.net user-controls updatepanel


【解决方案1】:

你需要在你的代码隐藏中注册一个启动脚本来调用一个函数来重新初始化你的 jqDock。这是因为在 UpdatePanel 回发之后,&lt;ContentTemplate&gt;&lt;/ContentTemplate&gt; 内的所有内容都会被替换。

代码隐藏:

ScriptManager.RegisterStartupScript(this, GetType(), reInitjqDock, "reInitjqDock();", true);

脚本:

//example
function reInitjqDock()
{
  jQuery('#dock').jqDock();
}

【讨论】:

  • 看起来您的示例中已将代码注释掉。使用 ScriptManager.RegisterStartupScript 而不是 ScriptManager.RegisterClientScriptInclude。
  • 我确实了解它背后的理论,但我不知道如何实现上面的例子,我正在学习 jquery。如果你能帮助我一步一步地解决这个问题,那就太好了。就像我是否必须在内容模板之间声明一个函数并在后面调用该函数代码..类似于 dat
  • 嗨,我试过上面的代码没有成功,第一次点击后用户控件消失了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 1970-01-01
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
相关资源
最近更新 更多