C# asp.net如何从表中删除除第一行以外的所有行
过去我用过这个C# asp.net如何从表中删除除第一行以外的所有行,c#,asp.net,C#,Asp.net,过去我用过这个 DateBookingTable.Rows.Clear(); 删除所有行 现在我想删除除第一行以外的所有行 我为什么要那样? 因为当我删除所有行时,th被删除,我不希望这样。我想删除所有数据。不是th 这是我不想删除的 <tr><th>ID</th><th>PlanTime</th></tr> IDPlanTime 我试过的 我做这个循环: for (int i = 0; i < DateBook
DateBookingTable.Rows.Clear();
删除所有行
现在我想删除除第一行以外的所有行
我为什么要那样?
因为当我删除所有行时,th
被删除,我不希望这样。我想删除所有数据。不是th
这是我不想删除的
<tr><th>ID</th><th>PlanTime</th></tr>
IDPlanTime
我试过的
我做这个循环:
for (int i = 0; i < DateBookingTable.Rows.Count; i++) {
if (i >0){
//here what should I do
}
}
for(int i=0;i0){
//我该怎么办
}
}
但是我不知道如何删除您可以使用的循环中looop中的那一行
DateBookingTable.Rows.RemoveAt(i);
您可以将循环修改为从1
开始,而不是从0
开始,从而避免在每次迭代中根据0
检查循环
for (int i = 1; i < DateBookingTable.Rows.Count; i++)
{
DateBookingTable.Rows.RemoveAt(i);
}
要从行集合中删除行,请使用(并确保循环从1开始,而不是从0开始):
for(int i=1;i
或者,您可以使用:
for (int i = 1; i < DateBookingTable.Rows.Count; i++)
{
DateBookingTable.Rows.RemoveAt(i);
}
for(int i=1;i
为什么不让它更通用一点,创建一个扩展方法,如下所示:
/// <summary>
/// Clears rows from the TableRowCollection starting from the specified Start index
/// </summary>
/// <param name="Rows">The TableRowCollection</param>
/// <param name="Start">Start Index</param>
public static void ClearFrom(this WebControls.TableRowCollection Rows, int Start)
{
if (Start == 0)
{
Rows.Clear();
}
else if (Start >= Rows.Count)
{
return;
}
else
{
for (int i = Start; i < Rows.Count; i++)
{
Rows.RemoveAt(i);
}
}
}
像这样的,它的工作
private void ClearDataRows(Table table)
{
if (table.Rows.Count <= 1) return;
var rowCount = table.Rows.Count;
for (var i = 1; i < rowCount; i++)
table.Rows.RemoveAt(1);
}
private void ClearDataRows(表)
{
如果(table.Rows.Count)对我不起作用,我必须将您的for循环更改为while(MyTable.Rows.Count>1)MyTable.Rows.RemoveAt(1);如果您要求的话,这是最简单、最干净的解决方案!
/// <summary>
/// Clears rows from the TableRowCollection starting from the specified Start index
/// </summary>
/// <param name="Rows">The TableRowCollection</param>
/// <param name="Start">Start Index</param>
public static void ClearFrom(this WebControls.TableRowCollection Rows, int Start)
{
if (Start == 0)
{
Rows.Clear();
}
else if (Start >= Rows.Count)
{
return;
}
else
{
for (int i = Start; i < Rows.Count; i++)
{
Rows.RemoveAt(i);
}
}
}
MyTable.Rows.ClearFrom(1);
private void ClearDataRows(Table table)
{
if (table.Rows.Count <= 1) return;
var rowCount = table.Rows.Count;
for (var i = 1; i < rowCount; i++)
table.Rows.RemoveAt(1);
}
while (MyTable.Rows.Count > 1) MyTable.Rows.RemoveAt(1);