2009-10-01 74 views
0

爲什麼複選框沒有被這個代碼檢查?<%= html.checkbox(「Name」,布爾值)%>複選框沒有被檢查

<td><%=Html.CheckBox("ItemIsActive", item.ItemIsActive)%></td> 

Item.ItemIsActiveboolean類型的,並且設置爲true

當我做到這一點,就說明「true」視圖

<td><%=item.ItemIsActive%></td> 
+0

你可以在Html.Checkbox(...)調用上設置一個斷點來驗證嗎?另外,你是否仔細檢查了生成的html源代碼? – 2009-10-01 22:39:00

+0

我自己有這個問題,我從來沒有得到本地幫手正常工作。我最終做出了一個名爲CheckboxForBool的自己的助手,最終解決了我的問題。我目前沒有代碼,但如果我沒有解決這個問題,我會發布我使用的代碼。 – 2009-10-01 23:52:40

回答

1

我有同樣的問題,直到我將我的布爾字段更改爲不可空字段。確保您的Item.IsActive字段聲明,如:中

bool ItemIsActive {..} 

代替

bool? ItemIsActive {..} 

如果您正在使用LINQ2SQL確保ItemIsActive是不是在你的桌子空。

0

我這個打了30分鐘左右,現在我曾嘗試以下;

1)創建一個複選框並設置爲true 2)創建的變量,設置爲true,並使用它作爲檢查標誌 3)具有相同id其它設置一個假變爲真

創建兩個複選框

以上所有的工作都很好,所以我能想到的(唯一的)事情是您可能會將一些CSS或JavaScript設置複選框重新設置爲false。如果你使用jQuery,這很容易做到。

事實上,對這個問題的答覆如此之少似乎表明其他人似乎也無法複製您的問題。

就像我說的,我會檢查我的CSS和任何JavaScript/jQuery的我在網頁上,部分控制,掌握等

+0

嗨,thx爲你的時間。 我嘗試這樣做: ​​<%= item.ItemIsActive%> ​​<%= Html.CheckBox( 「ItemIsActive」,item.ItemIsActive)%> 正如所看到的我使用item.ItemIsActive在相同的觀點。當我運行的網站,這是我所看到的: ​​假 ​​<輸入ID =「ItemIsActive」 NAME =「ItemIsActive」類型=「複選框」值=「真」 /> 是有毛病我設置html.checkbox的方式? – kevinius 2009-10-02 09:48:30

0

如果你有一個叫做ItemIsActive一個可視數據項,或者如果你的觀點綁定到具有名爲的屬性的特定模型,它將使用您指定的內容。

要看看這可能是它試圖將其更改爲這樣:

<td><%=Html.CheckBox("ItemIsActive_test", item.ItemIsActive)%></td> 

如果這樣的作品,那麼我會打賭在ViewData的東西,或在模型中重寫什麼item.ItemIsActive包含

+0

item.ItemIsActive包含布爾類型從數據庫記錄來: 昏暗連接= DB.MijnLijstjeItems.ToList()返回 連接 – kevinius 2009-10-02 09:54:53

+0

@kevinus,你可能會想嘗試@solmead諮詢,並有一個測試,將名爲變量說'slapy'爲true,並在你的複選框中使用它來查看是否有效。你可能實際上有衝突。 – griegs 2009-10-04 03:45:26

+0

甚至只是做: ​​ <%= Html.CheckBox( 「ItemIsActive」,真)%> <%= Html.CheckBox( 「ItemIsActive_Test」,真)%> – Solmead 2009-10-06 02:03:44

1

我也遇到了同樣的問題(使用ASP.NET MVC)。

其實我有一個窗體有兩個複選框,其中一個布爾值可爲空而另一個不可爲空。

在不可爲空的情況下,當來自數據庫的值爲真時,複選框被選中。在可空的情況下,我無法使用Html.CheckBox進行檢查。

我通過將模型中的值轉換爲非空值布爾值來解決此問題。

<td><%=Html.CheckBox("ItemIsActive", item.ItemIsActive == null ? 
    false : 
    (bool)item.ItemIsActive) %></td>