반응형
ASP.NET 그리드 보기에서 부울을 예/아니오로 변환할 수 있습니까?
ASP.NET을 가지고 있습니다.GridView
열이 부울에 매핑되어 있습니다."True"/"False" 대신 "Yes"/"No"를 표시합니다.음, 사실 저는 "Ja"/"Nej"(덴마크어)를 원합니다.
이것이 가능합니까?
<asp:gridview id="GridView1" runat="server" autogeneratecolumns="false">
<columns>
...
<asp:boundfield headertext="Active" datafield="Active" dataformatstring="{0:Yes/No}" />
...
</columns>
</asp:gridview>
이 코드를 VB에 사용합니다.
<asp:TemplateField HeaderText="Active" SortExpression="Active">
<ItemTemplate><%#IIf(Boolean.Parse(Eval("Active").ToString()), "Yes", "No")%></ItemTemplate>
</asp:TemplateField>
이는 C#(테스트되지 않음)에 적용됩니다.
<asp:TemplateField HeaderText="Active" SortExpression="Active">
<ItemTemplate><%# (Boolean.Parse(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>
다음과 같은 메소드를 페이지 클래스에 추가합니다.
public string YesNo(bool active)
{
return active ? "Yes" : "No";
}
그리고 당신의 안에서.TemplateField
너Bind
다음 방법 사용:
<%# YesNo(Active) %>
아니요 - 템플릿 열을 사용할 수 있습니다.
<script runat="server">
TResult Eval<T, TResult>(string field, Func<T, TResult> converter) {
object o = DataBinder.Eval(Container.DataItem, field);
if (converter == null) {
return (TResult)o;
}
return converter((T)o);
}
</script>
<asp:TemplateField>
<ItemTemplate>
<%# Eval<bool, string>("Active", b => b ? "Yes" : "No") %>
</ItemTemplate>
</asp:TemplateField>
Mixin을 사용할 수 있습니다.
/// <summary>
/// Adds "mixins" to the Boolean class.
/// </summary>
public static class BooleanMixins
{
/// <summary>
/// Converts the value of this instance to its equivalent string representation (either "Yes" or "No").
/// </summary>
/// <param name="boolean"></param>
/// <returns>string</returns>
public static string ToYesNoString(this Boolean boolean)
{
return boolean ? "Yes" : "No";
}
}
클라이언트의 db 스키마가 null 비트(즉, True/False/NULL을 허용함)라는 점을 제외하고는 원래 포스터와 동일한 필요성이 있었습니다.예/아니오를 표시하고 잠재적인 null을 처리하기 위해 작성한 코드가 있습니다.
코드백:
public string ConvertNullableBoolToYesNo(object pBool)
{
if (pBool != null)
{
return (bool)pBool ? "Yes" : "No";
}
else
{
return "No";
}
}
프런트 엔드:
<%# ConvertNullableBoolToYesNo(Eval("YOUR_FIELD"))%>
또는 사용할 수 있습니다.ItemDataBound
뒤에 있는 코드의 이벤트.
제가 항상 해왔던 방식은 다음과 같습니다.
<ItemTemplate>
<%# Boolean.Parse(Eval("Active").ToString()) ? "Yes" : "No" %>
</ItemTemplate>
도움이 되길 바랍니다.
효과:
Protected Sub grid_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grid.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.Cells(3).Text = "True" Then
e.Row.Cells(3).Text = "Si"
Else
e.Row.Cells(3).Text = "No"
End If
End If
End Sub
어디에cells(3)
부울 필드가 있는 열의 열입니다.
Format()-Function으로 간편합니다.
Format(aBoolean, "YES/NO")
자세한 내용은 여기에서 확인하십시오. https://msdn.microsoft.com/en-us/library/aa241719(v=vs.60).aspx
언급URL : https://stackoverflow.com/questions/216833/can-i-convert-a-boolean-to-yes-no-in-a-asp-net-gridview
반응형
'programing' 카테고리의 다른 글
임시 정의 정보 (0) | 2023.07.22 |
---|---|
그린렛 대.스레드 (0) | 2023.07.17 |
판다 - 사전에서 데이터 프레임에 새 열 추가 (0) | 2023.07.17 |
오라클에서 'as' 키워드를 사용하여 테이블에 별칭을 지정하는 방법은 무엇입니까? (0) | 2023.07.17 |
Mongoose로 업데이트된 컬렉션 반환 (0) | 2023.07.17 |