表格内帮助div的问题

时间:2010-07-04 18:47:14

标签: c# jquery asp.net-mvc

我有一个角色表,其中包含具有访问权限的复选框。我需要在最右边的列上显示一个帮助按钮,该按钮显示使用JQuery Dialog的角色信息。由于某种原因,对话框仅每隔一次显示一次。

以下是我使用的代码:

<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> 

1 个答案:

答案 0 :(得分:1)

调用$(foo).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获取内容也非常容易,因此您无需加载用户可能永远不会点击查看的信息页面。