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

+0

@ahsteele это проблема на стороне клиента. Диалог есть, но он пуст. Если я нажимаю ссылку справки, флажок исчезает, и диалоговое окно появляется пустым. –

+0

@ahsteele каждый второй клик. Я использую тот же код выше, но только с двумя строками, и там он отлично работает –

ответ

1

Вызов $ (Foo) .dialog() будет инициализировать диалоговое экземпляр и будет автоматически открыт диалог по умолчанию. Если вы хотите повторно использовать диалог, самый простой способ - отключить опцию «auto-open» с помощью: $ (foo) .dialog ({autoOpen: false}) и открыть его с помощью $ (foo) .dialog ('open')

http://docs.jquery.com/UI/Dialog#overview и http://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-плагин я использую. –

Смежные вопросы