我无法弄清楚如何搜索并获得我需要的东西。我试图弄清楚如何改变数据显示的方式。因此,举例来说,如果我检索的tinyint
是1或0,并且我想分别显示“是”或“否”,我该如何解决?这是我在aspx中的内容:
<ASP:DataGrid id="AdminDataGrid" runat="server"
AutoGenerateColumns="False" AllowSorting="true"
Width="700px" CellPadding="3" EnableViewState="True"
BackColor="#EEEEEE" BorderColor="Black" HeaderStyle-BackColor="Gray"
Font-Name="Verdana" Font-Size="8pt" Font-Names="Verdana"
>
<Columns>
<asp:BoundColumn DataField="Active" HeaderText="Active State" ReadOnly="true" SortExpression="Active" />
</Columns>
</ASP:DataGrid>
要清楚,我只是希望它在每次从SQL表中提取数据时自动更新值。
我一直在尝试一些事情,但我不确定何时以及如何进行更改。成员对象:
DataTable DataTableAdmin = new DataTable();
DataView DataViewAdmin;
然后在页面加载中:
DataTableAdmin = myDataAccessObject.GetTable(strQuery);
DataViewAdmin = new DataView(DataTableAdmin);
我尝试过类似的事情:
if (DataTableAdmin.Columns[0] = "0")
{
DataTableAdmin.Columns[0] = "No";
}
else
{
DataTableAdmin.Columns.[0] = "Yes";
}
但我知道这不对,因为它不知道要做什么行。但无论如何,我希望它能普遍适用于所有行。然后我想我可以使用过滤器对DataView
做一些事情:
DataViewAdmin.RowFilter("Active = '0'");
但后来我不确定如何对我得到的内容进行修改。我正在考虑的其他事情是用一系列复选框替换列,这些复选框将根据值的大小进行检查或取消选中。然后可以检查或取消选中该值,并且可以在数据库中更新该值。
答案 0 :(得分:1)
这来自我在评论中发布的问题。非常有趣的两个列在2个帖子中被命名为Active。
<asp:TemplateField HeaderText="Active" SortExpression="Active">
<ItemTemplate><%# (Boolean.Parse(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>
答案 1 :(得分:0)
C Shaper的回答让我走上正轨,但需要进行大量的调整。第一个问题是:code blocks are not supported in this context.
将对象更改为TemplateColumn
修复了该问题。然后它没有解析这个值,说String was not recognized as a valid Boolean.
在做了进一步的研究后,我得到了以下工作:
<asp:TemplateColumn HeaderText="Active" SortExpression="Active">
<ItemTemplate><%# Convert.ToBoolean(Convert.ToInt32(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateColumn>