2011-03-01 90 views
1

我之前发布过类似的问题,但我仍然遇到一些问题。 我使用asp.net 4和c#。GridView在编辑模式下查找行

我有一个GridView,我在A)中有一些逻辑来更改GridView中每个Label的值(这部分代码正在工作)。 PS:我甚至使用_RowDataBound(让我知道它是否正确)。

我需要在编辑模式去当也适用于一些逻辑,只为一个单行。

在这里我的代码。它适用于编辑模式中的ROW是GridView中的第一个。如果我把编辑模式,例如第三行不起作用。

任何想法??谢谢

protected void uxManageSponsoredContentsDisplayer_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      switch (e.Row.RowType) 
      { 
       case DataControlRowType.DataRow: 
       // A) - Some code here 

       if (e.Row.RowState == DataControlRowState.Edit) 
       { 
       // Here some logic to apply only to ONE ROW! 

       } 
       break; 
      }   
     } 
+0

你怎么知道你想编辑哪一行?您始终可以使用e.Row.RowIndex获取行号。 – Richard 2011-03-01 11:07:34

+0

谢谢,这是我的问题....我不知道如何使用e.Row.RowIndex ...你能提供一个代码示例吗?非常感谢 – GibboK 2011-03-01 11:11:51

+0

感谢即时尝试,但我仍然有一个问题,你可以用rowediting更新代码的例子吗?谢谢 – GibboK 2011-03-01 12:55:26

回答

0

我有同样的问题。发生的是,第二行,第四行等处于备用状态,因此当您单击编辑时,它们将更改为“备用”|“编辑”状态。您必须检查该行是否也具有替代编辑状态。这有些东西可以帮助你。对我来说工作得很好。

protected void uxManageSponsoredContentsDisplayer_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     switch (e.Row.RowType) 
     { 
      case DataControlRowType.DataRow: 
      // A) - Some code here 

      if (e.Row.RowState ==(DataControlRowState.Alternate|DataControlRowState.AlternateEdit) || e.Row.RowState == DataControlRowState.Edit) 
      { 
      // Here some logic to apply only to ONE ROW! 

      } 
      break; 
     }   
    }