Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net如何从表中删除除第一行以外的所有行_C#_Asp.net - Fatal编程技术网

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);