GithubHelp home page GithubHelp logo

Comments (10)

AllenFang avatar AllenFang commented on June 8, 2024

Yep, it's a good feature for row selection, I'll add this feature in recently, but need some times :))

from react-bootstrap-table.

stephenrs avatar stephenrs commented on June 8, 2024

Great thanks, I'll look forward to it!

from react-bootstrap-table.

AllenFang avatar AllenFang commented on June 8, 2024

This issue has been solved on PR#18

from react-bootstrap-table.

stephenrs avatar stephenrs commented on June 8, 2024

The committed solution for this issue only solves part of the problem for me. In my case, I need to be able to programmatically select a given row, or at a minimum have the component respect new props when it is re-rendered. The current solution only allows setting the default selected row when the component is first mounted, which isn't so flexible. (also see #19 ).

I've made some modifications and have this working in my dev environment - it causes new props to always set the desired row to the selected state. This seems to be working fine for me, but there might be a better way to do it. Unfortunately, I'm not familiar enough with git to start a pull request (maybe when I have more time), but the change is pretty simple:

This is what the top of TableBody.js looks like in my dev:

function TableBody(props) {
    _classCallCheck(this, TableBody);

    _get(Object.getPrototypeOf(TableBody.prototype), "constructor", this).call(this, props);

    this._setSelectedRowByProps(props);

    this._attachRowSelectFunc();
    this.editing = false;
  }

  _inherits(TableBody, _React$Component);

  _createClass(TableBody, {
    componentDidUpdate: {
      value: function componentDidUpdate(prevProps, prevState) {
        this._attachRowSelectFunc();
      }
    },
    componentWillReceiveProps: {
      value: function componentWillReceiveProps(newProps) {
        this._setSelectedRowByProps(newProps);
      }
    },
    _setSelectedRowByProps: {
      value: function _setSelectedRowByProps(props) {
        var selected = props.selectRow.selected || [];

        if (props.selectRow.mode === Const.ROW_SELECT_SINGLE) {
          //if row selection is single, just pick the first item in 'selected'
          selected = selected.length > 0 ? [selected[0]] : [];
        }
        this.state = {
          currEditCell: null,
          selectedRowKey: selected
        };
      }
    },

Hope this helps!

from react-bootstrap-table.

AllenFang avatar AllenFang commented on June 8, 2024

I understand what you means, I'll spend some time to design it.

from react-bootstrap-table.

stephenrs avatar stephenrs commented on June 8, 2024

Ok great...also a new requirement has emerged on my project, and it would be very convenient to be able un-select a row from an external module without building in another re-render() cycle. Maybe a statics method on BootstrapTable would be useful(?)

from react-bootstrap-table.

AllenFang avatar AllenFang commented on June 8, 2024

I considered a statics method on some class before but there's some problem. Maybe I will re-think about that.

from react-bootstrap-table.

AllenFang avatar AllenFang commented on June 8, 2024

hi @stephenrs I've tried a lot of method for this requirement, include static or instance method. But there's no way to complete. Currently, I use componentWillReceiveProps to achieve requirement but you need to assign the new selected value and re-render table, you can see the detail on #19

from react-bootstrap-table.

AllenFang avatar AllenFang commented on June 8, 2024

About the dynamic select or unselect feature, I've released on v0.9.5 :)

from react-bootstrap-table.

elixirdada avatar elixirdada commented on June 8, 2024

@AllenFang @stephenrs

I am going to add the selected option in the selectRowProp.
As a result, I have made the code below:

selectRowProp = { mode: 'radio', bgColor: '#e9ecef', clickToSelect: true, hideSelectColumn: true, selected: this.props.vehicles[0] && [this.props.vehicles[0].vin], onSelect: (row) => this.onRowSelect(row), }

As you can see, it will take some time to get props values. So currently selected is the empty or null value.

How can I fix it?

from react-bootstrap-table.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.