开发者

ASP GridView Problem

Im working on the front end development for a website built in .net, This is the first time I've done this and I'm having trouble trying to alter a table.

The code which outputs my table is...

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

The html equivalent of this is something similar too...

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

However I need 5 columns not 2, I've tried reading up on the syntax but thought I'd ask here also, Thanks for any help.


I'm not exactly sure how your dataset is structured, but do you need that datalist in there or can you just put the controls in their own ItemTemplate in the GridView? This would give you 5 columns:

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

Of course, this ruins your binding to your datasource, but I'm not sure if I can accurately help you with fixing that :(


the number of column is automatically generated according to asp:templatefield when you have two templatefield, the only two column will be generated, and the number of rows depend on data.

so if you need 5 columns you have to put 5 templatefield inside the girdiview


Why do you "need" 5 columns? For layout? Perhaps a GridView isn't the right solution given what you're trying to accomplish. Could a Repeater that generates your content accomplish the same thing?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜