更改在ASP.NET中从SQL查询创建的表中显示的数据
本文关键字:创建 数据 显示 查询 SQL ASP NET 中从 | 更新日期: 2023-09-27 18:11:55
我不知道如何搜索这个,得到我所需要的。我想弄清楚如何改变数据显示的方式。例如,如果我检索到一个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'");
但是我不确定我将如何应用到我得到的改变。我考虑的另一件事是用一系列复选框替换该列,这些复选框将根据值被选中或未选中。然后可以选中或不选中该值,并且可以在数据库中更新该值。
这是来自我在评论中发布的问题。很有趣的是,这两个专栏都被命名为活动。
<asp:TemplateField HeaderText="Active" SortExpression="Active">
<ItemTemplate><%# (Boolean.Parse(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>
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>