我有以下gridview:
<asp:GridView ID="gdvReport" runat="server" AutoGenerateColumns="False" DataSourceID="sdseport">
<Columns>
<asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone">
<ControlStyle Width="250px" />
</asp:BoundField>
<asp:BoundField DataField="ToCall" HeaderText="Foramt" SortExpression="ToCall" />
</Columns>
</asp:GridView>
第二行是数据库中的bool,但我不想向用户显示复选框或true \ false。
如何显示这样的内容? 0 =不要打电话 1 =致电我们
答案 0 :(得分:3)
您可以创建TemplateField而不是BoundField。
<asp:TemplateField HeaderText="Whatever">
<ItemTemplate>
<asp:Literal ID="litTextValue" runat="server" />
</ItemTemplate>
</asp:TemplateField>
然后,您可以将一些内联代码显示为您想要的文本或处理RowDataBound事件以在那里执行逻辑。
答案 1 :(得分:1)
我最终只是为此使用了OnRowDataBound。
<asp:GridView ID="gdvReport" runat="server" AutoGenerateColumns="False" DataSourceID="sdseport" OnRowDataBound="OnRowDataBound">
<Columns>
<asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone">
<ControlStyle Width="250px" />
</asp:BoundField>
<asp:BoundField DataField="ToCall" HeaderText="Foramt" SortExpression="ToCall" />
</Columns>
</asp:GridView>
protected void OnRowDataBound(object sender, EventArgs e)
{
GridViewRowEventArgs ea = e as GridViewRowEventArgs;
if (ea.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drv = ea.Row.DataItem as DataRowView;
Object ob = drv["Phone"];
if (!Convert.IsDBNull(ob))
{
bool iParsedValue = false;
if (bool.TryParse(ob.ToString(), out iParsedValue))
{
TableCell cell = ea.Row.Cells[1];
if (iParsedValue == false)
{
cell.Text = "Don't Call";
}
else
{
cell.Text = "Call Us";
}
}
}
}
}
现在它运作良好。
答案 2 :(得分:0)
我做了这个并且有效
<asp:Literal ID="isActive" runat="server"
Text='<%#Eval("isActive")==DBNull.Value ?
"inactive":Convert.ToBoolean(Eval("isActive"))?"active":"inactive"
%>'></asp:Literal>
这是重要的部分。
Text ='&lt;%#Eval(“isActive”)== DBNull.Value?“inactive”:Convert.ToBoolean(Eval(“isActive”))?“active”:“inactive”%&gt;'< / p>
希望有所帮助。
答案 3 :(得分:0)
您应该在sql中执行此操作,而不是使用CASE语句在此处执行此操作 比如
CASE ToCall WHEN '1' THEN 'Call' ELSE 'Do not call' END AS ToCall
然后使用简单的绑定字段,例如
<asp:BoundField DataField="ToCall" HeaderText="Foramt" SortExpression="ToCall" />