2013-03-06 98 views
2

我有一个WebGrid,显示我的表和编辑按钮的值。当用户点击这个按钮时,会弹出一个窗体或对话框窗体,并使用前面提到的同一个表中的值填充它。显示一个复选框为真值

我设法格式化日期值,现在感兴趣的是从我的表中格式化布尔值(true/false)以显示在复选框中。目前它显示为一个值为true或false的文本框。

下面是我的代码部分:

$('#dialog-form2-edit').dialog(
      { 
//dialog form code .. this is fine 

$.getJSON('/Methods/GetCertificate/' + $(this).attr('id'), function (data) 
       { var certificate = data; 
        $('#edit-paid').val(certificate.Paid); 
        $('#edit-mark').val(certificate.Mark); 
        var date = new Date(parseInt(certificate.MarkDate.substr(6))); 
        var year = date.getFullYear(); 
        var month = date.getMonth() + 1; 
        var day = date.getDate(); 
        $('#edit-markdate').val(year + '-' + month + '-' + day); 
        $('#edit-markdate').datepicker({ dateFormat: 'yy-mm-dd' }); 

下面是我的HTML

<div id="dialog-form2-edit" title="Edit Certificate"> 
     <form id="edit-certificate-form" action="@Href("~/Methods/UpdateCertificate")"> 
      <div class="row"> 
       <span class="label"><label for="markdate">Mark Date :</label></span> 
       <input type="text" name="markdate" id="edit-markdate" size="20"/> 
      </div> 
      <div class="row"> 
       <span class="label"><label for="mark">Mark :</label></span> 
       <input type=text" name="mark" id="edit-mark" size="15"/> 
      </div> 

值马克和付费是布尔的一部分。现在我打算将类型更改为文本,并且需要帮助将布尔值格式化为复选框。

回答

0

使用此代码在复选框中显示您的布尔值。

$.getJSON('/Methods/GetCertificate/' + $(this).attr('id'), function (data) 
       { 
var certificate = data; 
if(certificate.Pass == true){ 
    $('#edit-pass').attr('checked', 'checked')} 
else {$('#edit-pass').removeAttr('checked', 'checked')}; 
// your other json data 
}) 

removeAttr是必需的,因为我使用jquery-1.4.2.min.js。经过测试和它的工作

2

如果您有一个服务器端布尔值,您可以在网页2中使用conditional attributes来管理复选框。您提供的布尔使用剃刀复选框的checked属性:

@{ var myBool = true; } 

<input type="checkbox" name="mark" id="mark" checked="@myBool" /> 

如果布尔是truechecked="checked"呈现。如果它是false,那么checked属性根本不会被渲染。

+0

谢谢迈克。我了解你的解决方案。我的问题是如何捕获要分配给myBool变量的值。比如说MarkDate,你注意到parseInt在我的javascript中格式化了日期。我感兴趣的是类似的东西,从我的getJSON得到的值如果为true,那么我的复选框被选中。 – 2013-03-07 10:11:22

+0

如果您在复选框中为“value”属性提供值,则在复选框被选中的情况下,该值将被传递给服务器。如果你没有提供一个值,那么就会传递一个默认值'on'。因此,使用我发布的示例,如果Request [“mark”] ==“on”,您应该在勾选框时将myBool设置为true。 – 2013-03-07 13:26:52

+0

我认为我们并不了解对方。我很关心使用getJSON中的值填充我的对话框。其中一个值是布尔值,只是希望它显示为复选框。我遵循这个教程http://www.mikesdotnetting.com/Article/176/WebMatrix-and-jQuery-Forms-Part-2-Editing-Data。然而,在教程中,数据库没有一个可靠的值。我的确必须显示在一个复选框中。 – 2013-03-07 13:56:39