我有一个小问题,我无法找到它。
是否有可能以某种方式将列移动到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可以帮助我解决这个问题!
感谢您抽出时间阅读本文!
答案 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>