2010-07-04 34 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