2010-07-04 78 views
1

我有一个角色的表,有复选框与访问或不。我需要一个帮助按钮,在最右边的列中显示使用JQuery Dialog的角色信息。出于某种原因,该对话框只会每隔两次显示一次。问题与表内的帮助div

下面是我使用的代码:

<table width="100%" border="0" cellspacing="0" cellpadding="5"> 
<%foreach (Role role in ViewData["Roles"] as List<Role>) 
    { %> 
    <tr> 
     <td width="20%"> 
      <%=role.RoleName %> 
     </td> 
     <td width="70%"> 
      <%=Html.CheckBox(role.RoleName, Model.IsInRole(role.LoweredRoleName)) %> 
     </td> 
     <td width="10%"> 
     <%if (!string.IsNullOrEmpty(role.Description)) 
      { %> 
      <%Html.RenderPartial("Help", new KeyValuePair<string, string>(role.RoleName, role.Description)); %> 
     <%} %> 
     </td> 
    </tr> 
    <%} %> 
</table> 

Help.aspx:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<KeyValuePair<string, string>>" %> 
<a href="#" onclick="$('#<%=Model.Key.Replace(" ", "") %>').dialog(); return false;"> 
    <img border="0" src="../../Content/Images/help_icon.gif" alt="?"/> 
</a> 
<div id="<%=Model.Key.Replace(" ", "") %>" title="<%=Model.Key %>" style="display:none;"> 
    <%=Model.Value %> 
</div> 
+0

每秒钟一次或每隔一行?我不知道你是否有渲染问题或客户端问题。 – ahsteele 2010-07-04 18:53:14

+0

@ahsteele这是一个客户端问题。该对话框在那里,但它是空的。如果我点击帮助链接,复选框消失,对话框弹出空白。 – 2010-07-04 18:55:30

+0

@ahsteele每秒钟点击一次。我使用上面相同的代码,但只有2行,并在那里它完美地工作 – 2010-07-04 20:02:49

回答

1

至$ A调用(富).dialog()将初始化一个对话框实例,并会自动打开该对话框默认。如果你想重用一个对话框,最简单的方法是用$(foo).dialog({autoOpen:false})禁用“自动打开”选项并用$(foo).dialog打开它('open' )

http://docs.jquery.com/UI/Dialog#overviewhttp://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/

但我会建议使用像http://plugins.learningjquery.com/cluetip/代替。 ClueTip有可通过点击打开的选项并保持关闭状态,因此您可以选择悬停和点击激活。通过AJAX获取内容也非常容易,因此您不必加载用户可能永远不会点击查看的信息页面。

+0

谢谢。但我认为你关注的是错误的事情。它适用于在其他地方使用此代码的完美工具。但在这个特定的表中它不起作用。我想这是一个HTML/CSS问题,而不是JS或我使用的jQuery插件。 – 2010-07-05 19:26:26