ASP网格视图问题

本文关键字:问题 视图 网格 ASP | 更新日期: 2023-09-27 17:57:52

我正在为一个内置于.net的网站进行前端开发,这是我第一次这样做,我在尝试更改表时遇到了问题。

输出我的表格的代码是…

<asp:GridView ID="GV_Concepts" runat="server" AutoGenerateColumns="False" DataKeyNames="ConCatID"
    BorderStyle="None" GridLines="None" ShowHeader="False" BorderWidth="0px" CssClass="DashBoard_Concepts">
    <Columns>
        <asp:TemplateField HeaderText="Catalog">
            <ItemTemplate>
                <asp:Label ID="LB_Cata" runat="server" Text='<%# Bind("ConCatalog") %>'></asp:Label>
            </ItemTemplate>
            <HeaderStyle CssClass="col-b" />
        </asp:TemplateField>
        <asp:TemplateField HeaderText=" Concept Version" ItemStyle-Width="" ItemStyle-HorizontalAlign="Center">
            <ItemTemplate>
                <div class="conceptstd">
                    <asp:DataList ID="DataList1" runat="server" RepeatColumns="3" BorderStyle="None"
                        DataSource='<%# Bind("DS_Version")%>'>
                        <ItemTemplate>
                            <asp:HyperLink ID="HL_ConcLoc" runat="Server" CssClass="linkage" NavigateUrl='<%# Bind("FileName") %>'
                                Target="_blank" Text='<%# Bind("Ver") %>'></asp:HyperLink>
                            <asp:LinkButton ID="LB_remove" runat="server" CommandArgument='<%# Bind("ConceptID") %>'
                                OnClick="LB_removecon_Click" CssClass="link-btn">Remove</asp:LinkButton>
                            <asp:LinkButton ID="LB_sign" runat="server" CommandArgument='<%# Bind("ConceptID") %>'
                                OnClick="LB_signcon_Click" CssClass="sign-off-btn" Visible='<%# SignedCheck(DataBinder.Eval(Container.DataItem,"SignOff")) ?true:false %>'>Sign Off</asp:LinkButton>
                            <asp:Literal ID="Lit_SignedCon" Visible='<%# SignedCheck(DataBinder.Eval(Container.DataItem,"SignOff")) ?false:true %>'
                                runat="server"><b>Signed Off</b></asp:Literal>
                        </ItemTemplate>
                    </asp:DataList>
                </div>
            </ItemTemplate>
            <HeaderStyle CssClass="col-c" />
        </asp:TemplateField>
    </Columns>
    <EmptyDataTemplate>
        Currently no concepts
    </EmptyDataTemplate>
</asp:GridView>

与之相当的html也是类似的。。。

<table>
    <tr>
       <td></td>
       <td></td>
    </tr>
    <tr>
       <td></td>
       <td></td>
    </tr>
 </table>

然而,我需要5列,而不是2列,我试着阅读语法,但我想我也可以在这里问,谢谢你的帮助。

ASP网格视图问题

我不确定你的数据集是如何构建的,但你需要数据列表吗?或者你可以把控件放在GridView中自己的ItemTemplate中吗?这将为您提供5列:

<asp:GridView ID="GV_Concepts" runat="server" AutoGenerateColumns="False" DataKeyNames="ConCatID"
    BorderStyle="None" GridLines="None" ShowHeader="False" BorderWidth="0px" CssClass="DashBoard_Concepts">
    <Columns>
        <asp:TemplateField HeaderText="Catalog">
            <ItemTemplate>
                <asp:Label ID="LB_Cata" runat="server" Text='<%# Bind("ConCatalog") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:HyperLink ID="HL_ConcLoc" runat="Server" CssClass="linkage" NavigateUrl='<%# Bind("FileName") %>'
                    Target="_blank" Text='<%# Bind("Ver") %>'></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="LB_remove" runat="server" CommandArgument='<%# Bind("ConceptID") %>'
                    OnClick="LB_removecon_Click" CssClass="link-btn">Remove</asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="LB_sign" runat="server" CommandArgument='<%# Bind("ConceptID") %>'
                    OnClick="LB_signcon_Click" CssClass="sign-off-btn" Visible='<%# SignedCheck(DataBinder.Eval(Container.DataItem,"SignOff")) ?true:false %>'>Sign Off</asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Literal ID="Lit_SignedCon" Visible='<%# SignedCheck(DataBinder.Eval(Container.DataItem,"SignOff")) ?false:true %>'
                    runat="server"><b>Signed Off</b></asp:Literal>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <EmptyDataTemplate>
        Currently no concepts
    </EmptyDataTemplate>
</asp:GridView>

当然,这会破坏你与数据源的绑定,但我不确定我是否能准确地帮助你解决这个问题:(

列数是根据asp:templatefield自动生成的当您有两个templatefield时,将只生成两列,并且数字的行取决于数据。

因此,如果您需要5列,则必须在网格视图中放入5个模板字段

为什么"需要"5列?用于布局?考虑到您正在努力实现的目标,GridView可能不是正确的解决方案。生成你的内容的中继器能完成同样的事情吗?