2010-11-24 68 views
2

我現在有以下GridViewTemplateField爲什麼這種布爾字符串格式不起作用?

<asp:TemplateField HeaderText="Despatched"> 
    <ItemTemplate><%# IIf(Eval("Despatched"), "Yes", "No")%></ItemTemplate> 
</asp:TemplateField> 

這工作得很好,但我讀過我可以做以下相反,我認爲這是一個很大整潔:

<asp:BoundField HeaderText="Despatched" DataField="Despatched" DataFormatString="{0:Yes;No}" /> 

然而,這仍然返回True/False值而不是是/否

爲什麼不能正常工作?

謝謝。

+0

你在哪裏讀的?有鏈接? – Oded 2010-11-24 13:39:05

+0

爲什麼在你的開頭有一個額外的I語句 – 2010-11-24 13:41:56

+0

@Ash Burlaczenko - 它的vb.net相當於c#`?:`運算符。請參閱MSDN上的[IIf函數](http://msdn.microsoft.com/zh-cn/library/27ydhh0d.aspx)。 – Oded 2010-11-24 13:43:23

回答

8

據我所知,bool.ToString()不支持自定義格式字符串,如{0:是;否}雖然我真的承認這將是:-)

下面的代碼是一個好主意:

bool b = true; 
    Console.WriteLine("{0:Yes;No}", b); 

無論您使用的是什麼.NET Framework版本(2,3,4),始終顯示爲真。

-1

您擁有的代碼是準確的。您可能會嘗試清理並重新編譯該網站以查看行爲是否發生變化。如果這是部署,請在複製新文件之前刪除目標。

我只是覺得Visual Studio沒有在部署上更新.aspx文件。我發現的情況往往會頻繁發生。

相關問題