2013-03-06 93 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