C# 将表(TD)中的数据和控件向上移动
我试图找出如何将asp:xxx控件的某些单元格(而不是整行)向上移动 下面是一个示例布局(使用文本)来显示数据是如何布局的,以及我希望它之后显示什么。这一切都可以在页面加载的代码隐藏中完成,因为条件将设置为显示或隐藏这两行 基本上,我需要(有条件地)隐藏单元格XXX XXX YYY和YYY。然后把他们调高C# 将表(TD)中的数据和控件向上移动,c#,asp.net,html,C#,Asp.net,Html,我试图找出如何将asp:xxx控件的某些单元格(而不是整行)向上移动 下面是一个示例布局(使用文本)来显示数据是如何布局的,以及我希望它之后显示什么。这一切都可以在页面加载的代码隐藏中完成,因为条件将设置为显示或隐藏这两行 基本上,我需要(有条件地)隐藏单元格XXX XXX YYY和YYY。然后把他们调高 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>&
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.tableNoPad
{
padding: 0;
margin: 0;
border-style: none;
width: 100%;
border-collapse: collapse;
empty-cells: hide;
}
.altrowStandard
{
background-color: lightblue;
}
</style>
</head>
<body>
<form id="form1" runat="server">
Before:
<div>
<table class="tableNoPad">
<tr>
<td>
AAA
</td>
<td>
aaa
</td>
<td>
</td>
<td>
AAA
</td>
<td>
aaa
</td>
</tr>
<tr class="altrowStandard">
<td>
BBB
</td>
<td>
bbb
</td>
<td runat="server" id="hide1a">
</td>
<td runat="server" id="hide1b">
BBB
</td>
<td runat="server" id="hide1c">
bbb
</td>
</tr>
<tr>
<td>
CCC
</td>
<td>
ccc
</td>
<td id="hide2a" runat="server">
</td>
<td runat="server" id="hide2b">
XXX
</td>
<td runat="server" id="hide2c">
xxx
</td>
</tr>
<tr class="altrowStandard">
<td>
DDD
</td>
<td>
ddd
</td>
<td id="hide3a" runat="server">
</td>
<td runat="server" id="hide3b">
YYY
</td>
<td runat="server" id="hide3c">
yyy
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
CCC
</td>
<td>
ccc
</td>
</tr>
<tr class="altrowStandard">
<td>
</td>
<td>
</td>
<td>
</td>
<td>
DDD
</td>
<td>
ddd
</td>
</tr>
</table>
</div>
After:
<div>
<table class="tableNoPad">
<tr>
<td>
AAA
</td>
<td>
aaa
</td>
<td>
</td>
<td>
AAA
</td>
<td>
aaa
</td>
</tr>
<tr class="altrowStandard">
<td>
BBB
</td>
<td>
bbb
</td>
<td runat="server" id="Td1">
</td>
<td runat="server" id="Td2">
BBB
</td>
<td runat="server" id="Td3">
bbb
</td>
</tr>
<tr>
<td>
CCC
</td>
<td>
ccc
</td>
<td id="Td4" runat="server">
</td>
<td runat="server" id="Td5">
CCC
</td>
<td runat="server" id="Td6">
ccc
</td>
</tr>
<tr class="altrowStandard">
<td>
DDD
</td>
<td>
ddd
</td>
<td id="Td7" runat="server">
</td>
<td runat="server" id="Td8">
DDD
</td>
<td runat="server" id="Td9">
ddd
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
1.tableNoPad
{
填充:0;
保证金:0;
边框样式:无;
宽度:100%;
边界塌陷:塌陷;
空单元格:隐藏;
}
.altrowStandard
{
背景颜色:浅蓝色;
}
之前:
AAA
aaa
AAA
aaa
BBB
bbb
BBB
bbb
CCC
ccc
XXX
xxx
DDD
ddd
YYY
yyy
CCC
ccc
DDD
ddd
之后:
AAA
aaa
AAA
aaa
BBB
bbb
BBB
bbb
CCC
ccc
CCC
ccc
DDD
ddd
DDD
ddd
一个选项可能是在代码隐藏中构建一个数据表,然后将其绑定到GridView。将GridView添加到页面,如下所示:
<form id="form1" runat="server">
<asp:GridView runat="server" ID="ExampleGridView"
AutoGenerateColumns="true" ShowHeader="false" />
</form>
然后,在页面加载中,您可以根据需要构建DataTable,例如:
protected void Page_Load(object sender, EventArgs e)
{
DataTable table = new DataTable();
var condition = false;
for (int i = 0; i < 4; i++) table.Columns.Add();
AddArray(table, new string[4] { "AAA", "aaa", "AAA", "aaa" });
AddArray(table, new string[4] { "BBB", "bbb", "BBB", "bbb" });
if (condition)
{
AddArray(table, new string[4] { "CCC", "ccc", "CCC", "ccc" });
AddArray(table, new string[4] { "DDD", "ddd", "DDD", "ddd" });
}
else
{
AddArray(table, new string[4] { "CCC", "ccc", "XXX", "xxx" });
AddArray(table, new string[4] { "DDD", "ddd", "YYY", "yyy" });
AddArray(table, new string[4] { "", "", "CCC", "ccc" });
AddArray(table, new string[4] { "", "", "DDD", "ddd" });
}
ExampleGridView.DataSource = table;
ExampleGridView.DataBind();
}
private void AddArray(DataTable table, string[] items) {
var row = table.NewRow();
row.ItemArray = items;
table.Rows.Add(row);
}
受保护的无效页面加载(对象发送方,事件参数e)
{
DataTable=新的DataTable();
var条件=假;
对于(inti=0;i<4;i++)table.Columns.Add();
AddArray(表,新字符串[4]{“AAA”、“AAA”、“AAA”、“AAA”});
AddArray(表,新字符串[4]{“BBB”、“BBB”、“BBB”、“BBB”});
如果(条件)
{
AddArray(表,新字符串[4]{“CCC”、“CCC”、“CCC”、“CCC”});
AddArray(表,新字符串[4]{“DDD”,“DDD”,“DDD”,“DDD”});
}
其他的
{
AddArray(表,新字符串[4]{“CCC”、“CCC”、“XXX”、“XXX”});
AddArray(表,新字符串[4]{“DDD”、“DDD”、“YYY”、“YYY”});
AddArray(表,新字符串[4]{“”,“CCC”,“CCC”});
AddArray(表,新字符串[4]{“”,“DDD”,“DDD”});
}
ExampleGridView.DataSource=表格;
例如GridView.DataBind();
}
私有void AddArray(数据表,字符串[]项){
var row=table.NewRow();
row.ItemArray=项目;
table.Rows.Add(行);
}
请注意,DDD下面有一些单元格,因此我需要能够只移动右侧的一些单元格。此外,我还考虑将其拆分为两个表(并隐藏行),但根据换行,交替的行不会正确对齐。