2013-10-10 9 views
1



У меня есть небольшой вопрос, который я не мог найти.
Можно ли каким-либо образом переместить столбец в следующую строку в виде сетки?

Как это:
Column placement to next row in gridviewAsp.net Размещение столбцов в следующем ряду в 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(); 
    } 


EDIT:
Im в основном пытается каким-то образом преобразовать/переместить это в новую строку через codebehind или aspx-код.
я не мог получить это выглядеть большим, используя CSS Aswell:/


Я действительно надеюсь, что Сомон может помочь мне с этим вопросом!
Спасибо за время, чтобы прочитать это!

+0

Это технически не является столбец. Моим подходом было бы стиль первой строки. –

+0

Im в основном пытается каким-то образом преобразовать/переместить это в новую строку с помощью codebehind или aspx-кода. –

+0

Мой подход может быть плохим, но я предлагаю, чтобы вы перестали рассматривать его как столбец и вместо этого ставили первую строку. Эта пятая колонка, о которой вы упомянули, не сможет иметь никаких «собственных» данных, поскольку она находится под всеми остальными, поэтому это просто один экземпляр заголовка столбца. Сделать верхнюю строку похожим на заголовок 5-го столбца - это вариант (я буду повторять, возможно, не самый лучший вариант, но это все, что я знаю пока). –

ответ

1

Да, это, безусловно, возможно =) Это можно сделать, создав столбец gridview в виде новой строки таблицы на вашей странице aspx. Просто добавьте поле шаблона в вашем GridView & включает тр, тд тегов, как это

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

Sample