更改在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.NET中从SQL查询创建的表中显示的数据

这是来自我在评论中发布的问题。很有趣的是,这两个专栏都被命名为活动。

<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>