如何使用 asp.net c# 并排动态添加网格视图
本文关键字:动态 添加 网格 视图 何使用 asp net | 更新日期: 2023-09-27 18:32:55
我正在创建一个页面,该页面在多个网格视图中显示一些详细信息。我之所以说几个,是因为网格视图的数量不是恒定的。我在aspx页面上有一个面板,并动态向其添加网格视图。
ASPX 代码:
<asp:Panel ID="pnlResult" runat="server"></asp:Panel>
ASPX.cs代码
int numOfGroups = some number here;
for (int i = 1; i < numOfGroups + 1; i++)
{
GridView grd = new GridView();
grd.ID = "GridView" + i.ToString();
grd.BackColor = getColor(i);
grd.DataSource = dt; // some data source
grd.DataBind();
pnlResult.Controls.Add(grd);
}
但我的问题是网格视图正在将一个添加到另一个下面.我希望他们并排。我怎样才能做到这一点?
注意:面板不是强制性的。其他任何东西都可以在它的位置中使用
您必须在面板中float
元素才能left
。要在代码隐藏中实现这一点,在将网格添加到面板之前,请执行以下操作:
grd.Attributes.Add("class", "float-left");
其中float-left
css 中的类定义为:
.float-left {
float: left;
}
因此,您的代码将如下所示:
for (int i = 1; i < numOfGroups + 1; i++)
{
GridView grd = new GridView();
grd.ID = "GridView" + i.ToString();
grd.BackColor = getColor(i);
grd.Attributes.Add("class", "float-left"); //here
grd.DataSource = dt; // some data source
grd.DataBind();
pnlResult.Controls.Add(grd);
}
如果使用
表控件,则可以创建一行,并将每个网格添加为单元格,这将强制实施并行要求:
TableCell cell = new TableCell();
cell.Controls.Add(grd);
table.Rows(0).Cells.Add(cell);
类似的东西;不确定上面的表 API 示例是否 100% 正确,但希望您能理解这个想法。
也许你只需要添加一些 css?诸如此类:
grd.DataSource = dt; // some data source
grd.Style["float"] = "left"; // css
grd.DataBind();
你可以做这样的事情
Table tbl = new Table();
TableRow tr = new TableRow();
TableCell tc = new TableCell();
btn = new Button();
btn.Text = "Add ";
btn.Height = Unit.Pixel(30);
btn.Width = Unit.Pixel(100);
tc.Controls.Add(btn);
tr.Controls.Add(tc);
tbl.Controls.Add(tr);
panel.Controls.Add(tbl);