【问题标题】:ASP.NET MVC show dialog with predefined data带有预定义数据的 ASP.NET MVC 显示对话框
【发布时间】:2015-06-23 14:06:48
【问题描述】:

我尝试使用 jquery.dialog,但它似乎不适合我的需要,因为我已经在需要显示详细信息弹出窗口的视图中加载了数据。

我当前的视图如下所示:

@foreach (var item in ViewData["Records"] as List<wow.Models.DetailsView>)
{
  <div class="detail-container" id="dialog-opener" class="detail-item">
     <p>@item.Title</p>
  </div>
}

当我单击详细信息容器时,我希望在附加对话框/弹出窗口中查看其他详细信息(尽管是嵌入的)。我尝试了 jQuery,但我不确定我应该在哪里声明对话框 div。

对不起,如果我错过了解释一些细节,但请问我,我会澄清......

谢谢

附:对话框如下所示(包含 VIewData 中包含的数据):

<div "dialog">
    <p>@item.Title</p>
    <p>@item.Date</p>
    <p>@item.UserID</p>
    //etc.
</div>

【问题讨论】:

    标签: jquery asp.net-mvc dialog


    【解决方案1】:

    你可以这样做:

    DEMO

    $( ".detail-container" ).click(function() {
          $( "#dialog" ).dialog( "open" );
          $(".ui-dialog-content").empty();
          $(".ui-dialog-content").append($(this).find('p').text());
    });
    

    提示:您要添加两次课程。而是只添加一次,然后 从 div 中删除 id,因为它会创建重复的 id HTML 规则。

    @foreach (var item in ViewData["Records"] as List<wow.Models.DetailsView>)
    {
      <div class="detail-container detail-item">
         <p>@item.Title</p>
      </div>
    }
    

    更新

    要添加额外的数据首先需要把它放在html的某个地方,如果附加为data-*html5属性会更好,如下所示:

    @foreach (var item in ViewData["Records"] as List<wow.Models.DetailsView>)
    {
      <div class="detail-container" id="dialog-opener" data-date="@item.Date" data-uid="@item.UserID" class="detail-item">
         <p>@item.Title</p>
      </div>
    }
    

    现在您可以按如下方式检索它:

    $( ".detail-container" ).click(function() {
          $( "#dialog" ).dialog( "open" );
          $(".ui-dialog-content").empty();
          var dateHTML="<p> Date : "+$(this).data("date")+"</p>";//get the data-date attribute of the element and store it as html element to append
          var uidHTML="<p> User ID : "+$(this).data("uid")+"</p>";//get the userID
          var titleHTML="<p> Title : "+$(this).find('p').text()+" </p>";
          var finalHTML=dateHTML + uidHTML + titleHTML;
          $(".ui-dialog-content").append(finalHTML);
    });
    

    上面的流程仍然可以优化,只是为了让你理解 我已经逐步完成了!

    【讨论】:

    • 快到了。我还需要附加隐藏字段文本和其他未显示在“对话框打开器”中但包含在 viewData[“Records”] 中的数据,例如@item.Date 未显示,但我需要将其显示在对话框中。是否可以?谢谢
    • @ElizabethDimova 更新了答案!!检查并告诉我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多