Asp.net列位置在gridview的下一行

时间:2013-10-10 07:42:10

标签: c# asp.net gridview placement gridviewrow



我有一个小问题,我无法找到它。
是否有可能以某种方式将列移动到gridview中的下一行?
像这样:
Column placement to next row in gridview

这确实是解释我想要做什么的最好方法 这里有一些代码给你好伙伴。

ASP.NET

<asp:GridView 
                runat="server" 
                ID="Notifications" 
                CssClass="Notifications" 
                PageSize="30" 
                AllowPaging="true" 
                AutoGenerateColumns="false" 
                ShowHeader="false" 
                OnRowCreated="Notifications_RowCreated">
            <RowStyle CssClass="TableRow" />
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Image ID="IMG_Seen" runat="server" AlternateText="Error" ImageUrl='<%# Eval("cSeen") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Image ID="IMG_Status" runat="server" AlternateText="Error" ImageUrl='<%# Eval("cStatus") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="L_Title" runat="server" Text='<%# Eval("cTitle") %>' />
                    </ItemTemplate>
                </asp:TemplateField>                    
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="L_Date" runat="server" Text='<%# Eval("cDate") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="L_Description" runat="server" Text='<%# Eval("cDescription") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton ID="lLB_inkTo" runat="server" PostBackUrl='<%# Eval("clinkto") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>   
            </asp:GridView>


C#-Gridview绑定方法

void Init_Notifications(XDocument xDoc) 
    {
        GridView GV = Notifications;           
        var Root = from p in xDoc.Descendants("User") select p;
        var getNotify = from n in Root.Descendants("Notifications") select n;
        foreach (XElement xe in getNotify.Nodes()) 
        {
            NotifList.Add(new Notification(
                xe.Attribute("ID").Value,
                xe.Attribute("Status").Value,
                xe.Attribute("Title").Value,
                xe.Attribute("Seen").Value,
                xe.Attribute("linkTo").Value,
                xe.Element("Description").Value
                )
            );
        }
        DataTable DT = new DataTable();
        DT.Columns.Add("cDate", typeof(System.String));
        DT.Columns.Add("cStatus", typeof(System.String));
        DT.Columns.Add("cTitle", typeof(System.String));
        DT.Columns.Add("cSeen", typeof(System.String));
        DT.Columns.Add("cDescription", typeof(System.String));
        DT.Columns.Add("clinkTo", typeof(System.String));
        foreach (Notification n in NotifList)
        {
            object[] RowContent = 
            {
                n.pDate,
                n.pStatus,
                n.pTitle,
                n.pSeen,                    
                n.pDescription,
                n.pLinkTo
            };
            DT.Rows.Add(RowContent);
        }
        Notifications.DataSource = DT;
        Notifications.DataBind();
    }


修改
我基本上试图通过代码隐藏或aspx代码以某种方式将其转换/移动到新行 使用CSS我无法让这看起来很棒:/


我真的希望somone可以帮助我解决这个问题! 感谢您抽出时间阅读本文!

1 个答案:

答案 0 :(得分:1)

是的,这当然是可能的=)您可以通过将gridview列渲染为aspx页面上的新表行来实现此目的。只需在gridview&amp;中添加模板字段即可。包括 tr,td 标签,例如

<asp:TemplateField>
                 <ItemTemplate>
                        <tr>
                            <td colspan="100%">
                                <!-- Insert your label, boundfield controls etc -->
                            </td>
                        </tr>
                 </ItemTemplate>
 </asp:TemplateField>

Sample