2012-01-16 114 views
2

我想选择一个包含keyvalue的DevExpress MVC GridView的特定行。我在gridview中尝试了下面的代码。如何突出显示DevExpress MVC GridView页面中的特定行?

settings.DataBound = (sender, e) => 
    { 
     MVCxGridView grid = (MVCxGridView)sender; 

     grid.PageIndex = 5; 

    }; 

    settings.PreRender = (sender, e) => 
    { 

     MVCxGridView grid = (MVCxGridView)sender; 

     grid.FocusedRowIndex = grid.FindVisibleIndexByKeyValue(35); 



    }; 

在这里我希望得到的是要突出其包含键值35上面的代码不会为我行选择工作5页的行。

请有人提出一个解决方案。

在此先感谢。

+0

您是使用Selection还是FocusedRow功能? – Mikhail 2012-01-16 08:52:57

+0

是@MikePreyskurantov – Prasanth 2012-01-17 06:22:16

+0

我更新了我的“聚焦行”情况下的代码片段。我相信不再需要“DataBound”事件处理程序。 – Mikhail 2012-01-17 14:56:42

回答

2

我得到了一个使用客户端JavaScript函数的解决方案。

settings.PreRender = (sender, e) => 
    { 

     MVCxGridView grid = (MVCxGridView)sender; 

     var selected = 35; 
     if (Convert.ToInt64(selected) > 0) 
     { 
      int index = grid.FindVisibleIndexByKeyValue(selected); 

      grid.PageIndex = index/grid.SettingsPager.PageSize; 

      grid.ClientSideEvents.Init = @"function(s, e) 
      { s.SetFocusedRowIndex(" + index + ");}"; 

     } 

    }; 
3

行选择:

可以选择以下方式经由ASPxGridView.Selection.SetSelectionByKey方法所需的DataRow:

C#:

settings.PreRender = (sender, e) => { 
    ASPxGridView gridView = (ASPxGridView)sender; 

    object keyValue = 35; 
    gridView.Selection.SetSelectionByKey(keyValue, true); 
}; 

VB.NET :

settings.PreRender = _ 
    Sub(sender, e) 
     Dim gridView As ASPxGridView = CType(sender, ASPxGridView) 

     Dim keyValue As Object = 35 
     gridView.Selection.SetSelectionByKey(keyValue, True) 
    End Sub 

你可以找到的DevExpress支持基地有着相似的应用:

http://www.devexpress.com/Support/Center/p/Q317380.aspx

焦点行:

C#:

settings.PreRender = (sender, e) => { 
    ASPxGridView gridView = (ASPxGridView)sender; 

    object keyValue = 35; 
    gridView.FocusedRowIndex = gridView.FindVisibleIndexByKeyValue(keyValue); 

}; 

VB.NET:

settings.PreRender = _ 
    Sub(sender, e) 
     Dim gridView As ASPxGridView = CType(sender, ASPxGridView) 

     Dim keyValue As Object = 35 
     gridView.FocusedRowIndex = gridView.FindVisibleIndexByKeyValue(keyValue) 
    End Sub 
+0

感谢您的回复。然而,我的网页在更新后得到回传,上面的方法对我不起作用,并且它在回发后缺少焦点行。最后我得到了一个使用javascript函数的解决方案。 – Prasanth 2012-01-17 06:18:27