const columnsTaenzer = [{
    headerName: "Any name",
    field: "yesno",
    checkboxSelection: (params: any) => {
        return (state.booleanValue) ? true : false;
    }
}, ...

मैं राज्य मूल्य के मूल्य के आधार पर चेकबॉक्स दिखाना चाहता हूं।

पहली बार जब यह "बूलियनवैल्यू" प्रस्तुत करता है तो झूठा होता है। लेकिन जब मैं बूलियन मान की स्थिति बदलता हूं, तो चेकबॉक्स चयन परिवर्तन को नहीं पहचानता है।

फंक्शन चेकबॉक्स में एजी-ग्रिड का चयन State.booleanValue हमेशा गलत होता है। साथ ही जब मैं वैल्यू कैश को गलत पर सेट करता हूं और रीफ्रेशसेल() को बल पैरामीटर के साथ कॉल करता हूं तो फ़ंक्शन चेकबॉक्स चयन में हमेशा राज्य होता है। बूलियन वैल्यू झूठा।

मैं एजी-ग्रिड को कैसे बता सकता हूं कि राज्य का मूल्य बदल गया है?

<AgGridReact
    rowHeight={50}
    rowSelection={'multiple'}
    rowDeselection={true}
    columnDefs={columnsTaenzer}
    onSelectionChanged={onSelectionChanged}
    onFirstDataRendered={autoSizeAll}
    rowData={state.tabledata}
    onGridReady={onGridReady}>
</AgGridReact>

//समाधान (अद्यतन - काम नहीं कर रहा)

शायद सही नहीं है, लेकिन यह काम करता है। संदर्भ का प्रयोग करें: एग-ग्रिड प्रसंग redrawRows() के संयोजन में ये पैरामीटर काम करता है। केवल redrawRows() "चेकबॉक्स चयन" को ट्रिगर करेगा। यदि आप केवल वैल्यूगेटर को ट्रिगर करना चाहते हैं, तो रीफ्रेश सेल ({बल: सत्य}) का उपयोग करें।

अब समस्या:

यदि आप redrawRows को कॉल करते हैं, तो यह तालिका (महान) को अपडेट करेगा, लेकिन संदर्भ नवीनतम पर अपडेट किया जाएगा।

इसका मतलब है कि यह हर सेल को पुराने संदर्भ के साथ अपडेट करेगा

0
Paul 13 सितंबर 2019, 19:22
क्या मैं आपके एजी-ग्रिड घटक के लिए आपका सेटअप देख सकता हूं? <AgGridReact ..... />?
 – 
wentjun
13 सितंबर 2019, 19:50
जोड़ा agridReact
 – 
Paul
13 सितंबर 2019, 20:08

1 उत्तर

सबसे बढ़िया उत्तर

यहां आपकी आवश्यकता के लिए एक कार्यशील प्लंकर है (राज्य अपडेट के साथ चेकबॉक्स चयन अपडेट करना): https://embed.plnkr.co/plunk/e5sKiz13v93Gg1oV

आप बूलियन के मान को पास करने के लिए संदर्भ का उपयोग कर सकते हैं। मैंने वह करने की कोशिश की जो आप हासिल करने की कोशिश कर रहे हैं, और ऐसा लगता है कि यह काम कर रहा है। AgGrid को संदर्भ का नवीनतम मान मिल रहा है। हो सकता है कि आपके कोड कार्यान्वयन में कुछ समस्या हो। वर्किंग कोड के लिए ऊपर प्लंकर देखें। मैंने इसे - https:/ पर कोड बढ़ाकर बनाया है। /www.ag-grid.com/javascript-grid-selection/#example-multiple-row-selection

आपको क्या करना है, जब आप "टॉगल चेकबॉक्स" पर क्लिक करते हैं, तो आप या तो कर सकते हैं

          onClick={() => {
            this.setState(p => {
              this.gridOptions.context = !p.isCheckboxShown; //set opposite value as of state before state is updated
              this.gridApi.redrawRows();
              return { isCheckboxShown: !p.isCheckboxShown };
            });
          }}

या

         onClick={() => {
            this.setState(
              p => {
                return { isCheckboxShown: !p.isCheckboxShown };
              },
              () => {
                this.gridOptions.context = this.state.isCheckboxShown;  //set same value as of state after state is updated
                this.gridApi.redrawRows();
              }
            );
          }}

साथ ही, आप suppressRowClickSelection={true} भी सेट कर सकते हैं। जब यह सत्य होता है, पंक्तियों पर क्लिक करने पर पंक्ति चयन नहीं होगा। जब आप विशेष रूप से चेकबॉक्स का चयन करना चाहते हैं तो इसका उपयोग करें।

1
Omkar Rajam 24 मई 2020, 18:49