【发布时间】:2009-12-07 14:11:16
【问题描述】:
我在 ASP.Net 中工作,我将数据库中的状态字段保存为真或假。现在,我想在 GridView 的前端将 true 或 false 显示为 Active 或 Inactive。如何在 Gridview 中显示数据。
提前致谢。
【问题讨论】:
标签: c# asp.net sql-server gridview
我在 ASP.Net 中工作,我将数据库中的状态字段保存为真或假。现在,我想在 GridView 的前端将 true 或 false 显示为 Active 或 Inactive。如何在 Gridview 中显示数据。
提前致谢。
【问题讨论】:
标签: c# asp.net sql-server gridview
另一种方法是使用数据网格的 RowDataBound 事件将其转换为活动/非活动字符串:
Protected Sub gvRequests_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvRequests.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim lbl As Label = CType(e.Row.FindControl("lblStatus"), Label)
If lbl.Text="1" then
lbl.Text="Active"
else
lbl.Text="Inactive"
end if
end if
end sub
【讨论】:
如果您询问如何将 true 和 false 更改为 Active 和 Inactive,您可以在 SQL 查询中使用 CASE 语句,如下所示:
SELECT CASE Status WHEN 1 THEN 'Active' WHEN 0 THEN 'Inactive' END FROM Something
如需更具体的答案,请发布更多详细信息。
【讨论】:
使用复选框列显示状态字段。 (将该列设置为禁用)
【讨论】:
如果您知道要过滤数据的单元格位置,也可以在 gridviews RowDataBound 事件中执行此操作。
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[2].Text == "1")
e.Row.Cells[2].Text = "True";
else
e.Row.Cells[2].Text = "False";
}
}
这是我用来在网格视图中查找和替换文本的方法。
【讨论】:
如果您使用的是模板字段,那么您可以创建服务器端函数并调用 Eval,如下所示
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblstatus" runat="server" Text='<%# GetStatusText(Eval("status")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
public string GetStatusText(string strIsActive)
{
bool val = Boolean.Parse(strIsActive);
if(val)
{
return "Active";
}
else
{
return "Inactive";
}
}
【讨论】: