How to highlight a particular row in a page of a DevExpress MVC GridView?

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-24 01:53:52

问题


I want to select a particular row of a DevExpress MVC GridView, which contains a keyvalue. I tried the following codes in the 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);



    };

Here what I wish to get is to highlight the row of 5th page which contains the keyvalue 35. The above code does not work for me for row selection.

Please anybody suggest a solution.

Thanks in advance.


回答1:


Row Selection:

You can select the required DataRow via the ASPxGridView.Selection.SetSelectionByKey method in the following manner:

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

You can find a similar implementation in DevExpress support base:

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

Focused Row:

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



回答2:


I got a solution which is using a clientside javascript function.

 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 + ");}";

      }

   };


来源:https://stackoverflow.com/questions/8875641/how-to-highlight-a-particular-row-in-a-page-of-a-devexpress-mvc-gridview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!