DevExpress TabPanel ਟੈਂਪਲੇਟਸ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਤਿਆਰ ਕਰਨ ਲਈ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਨਾ
ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ ASP.NET ਕੋਰ ਅਤੇ DevExpress ਕੰਪੋਨੈਂਟਸ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਅਕਸਰ UI ਤੱਤਾਂ ਜਿਵੇਂ ਕਿ dxTabPanel. ਹਾਲਾਂਕਿ, ਇੱਕ ਆਮ ਮੁੱਦਾ ਪੈਦਾ ਹੁੰਦਾ ਹੈ ਜਿੱਥੇ ਟੈਬਾਂ ਦੀ ਸਹੀ ਸੰਖਿਆ ਬਣਾਈ ਜਾਂਦੀ ਹੈ, ਪਰ ਟੈਬ ਸਮੱਗਰੀ ਖਾਲੀ ਰਹਿੰਦੀ ਹੈ, ਨਿਰਾਸ਼ਾਜਨਕ ਵਿਕਾਸ ਦੇ ਯਤਨਾਂ.
ਚੁਣੌਤੀ ਉਦੋਂ ਵਾਪਰਦੀ ਹੈ ਜਦੋਂ ਰੇਜ਼ਰ ਵਿਊਜ਼ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਟੈਂਪਲੇਟ ਰਨਟਾਈਮ 'ਤੇ ਟੈਬ ਪੈਨਲ ਦੇ ਅੰਦਰ ਸਹੀ ਢੰਗ ਨਾਲ ਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਹਿੰਦੇ ਹਨ। ਇਹ ਲੇਖ ਪਤਾ ਕਰਦਾ ਹੈ ਕਿ ਕਿਵੇਂ ਕਰਨਾ ਹੈ DevExpress TabPanel ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਤਿਆਰ ਕਰੋ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ. ਅਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਇੱਕ ਵਿਹਾਰਕ ਹੱਲ ਦੀ ਪੜਚੋਲ ਕਰਾਂਗੇ ਕਿ ਸਮੱਗਰੀ ਹਰੇਕ ਟੈਬ ਦੇ ਅੰਦਰ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਦਰਸ਼ਿਤ ਹੁੰਦੀ ਹੈ।
ਦੋ ਟੈਂਪਲੇਟਾਂ—`employeeListTemplate` ਅਤੇ `addEditEmployeeTemplate`—ਦੇ ਨਾਲ ਇੱਕ ਦ੍ਰਿਸ਼ ਦੀ ਜਾਂਚ ਕਰਕੇ-ਸਾਡਾ ਟੀਚਾ ਗੁੰਮ ਟੈਬ ਸਮੱਗਰੀ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨਾ ਹੈ। ਤੁਸੀਂ ਸਿੱਖੋਗੇ ਕਿ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੁਆਰਾ ਟੈਂਪਲੇਟ ਡੇਟਾ ਨੂੰ ਪਾਰਸ ਕਿਵੇਂ ਕਰਨਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਆਪਣੇ ਟੈਬਪੈਨਲ ਨਾਲ ਜੋੜਨਾ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੇ ਭਾਗਾਂ ਵਿੱਚ, ਅਸੀਂ ਤੁਹਾਨੂੰ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਨਾਲ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਟੈਂਪਲੇਟ ਬਣਾਉਣ ਅਤੇ ਪੇਸ਼ ਕਰਨ ਵਿੱਚ ਸ਼ਾਮਲ ਕਦਮਾਂ ਬਾਰੇ ਦੱਸਾਂਗੇ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਅਸੀਂ ਨਜਿੱਠਣ ਦੌਰਾਨ ਬਚਣ ਲਈ ਸੰਭਾਵੀ ਨੁਕਸਾਨਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਾਂਗੇ DevExpress ਭਾਗ ਤੁਹਾਡੇ ਵਿੱਚ ASP.NET ਕੋਰ ਪ੍ਰਾਜੈਕਟ.
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
.dxTabPanel("instance") | ਇਹ ਵਿਧੀ TabPanel ਵਿਜੇਟ ਦੀ ਉਦਾਹਰਣ ਵਾਪਸ ਕਰਦੀ ਹੈ, ਇਸਦੀ ਸੰਰਚਨਾ ਅਤੇ ਵਿਕਲਪਾਂ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। ਵਿਜੇਟ ਦੀ ਸਮਗਰੀ ਜਾਂ ਵਿਵਹਾਰ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਸੋਧਣ ਵੇਲੇ ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ। |
option("items", items) | ਆਈਟਮਾਂ ਦੀ ਇੱਕ ਨਵੀਂ ਐਰੇ ਨਾਲ TabPanel ਦੀਆਂ ਆਈਟਮਾਂ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅੱਪਡੇਟ ਕਰਦਾ ਹੈ। ਇਸਦੀ ਵਰਤੋਂ ਟੈਂਪਲੇਟਾਂ ਜਾਂ ਹੋਰ ਸਮੱਗਰੀ ਨੂੰ ਡਾਇਨਾਮਿਕ ਤੌਰ 'ਤੇ ਟੈਬਸ ਵਿੱਚ ਲਗਾਉਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। |
NamedTemplate | ਇੱਕ DevExpress-ਵਿਸ਼ੇਸ਼ ਰੇਜ਼ਰ ਡਾਇਰੈਕਟਿਵ ਜੋ ਤੁਹਾਨੂੰ ਬੈਕਐਂਡ ਵਿੱਚ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਬਾਅਦ ਵਿੱਚ JavaScript ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਐਕਸੈਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। |
JSON.parse() | ਇੱਕ JSON ਸਤਰ ਨੂੰ ਪਾਰਸ ਕਰਦਾ ਹੈ ਅਤੇ ਇੱਕ JavaScript ਵਸਤੂ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਸਦੀ ਵਰਤੋਂ ਟੈਂਪਲੇਟ ਜਾਣਕਾਰੀ ਵਾਲੀ ਇੱਕ ਸਤਰ ਨੂੰ ਵਰਤੋਂ ਯੋਗ ਵਸਤੂ ਵਿੱਚ ਬਦਲਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। |
map() | ਇਹ ਐਰੇ ਵਿਧੀ ਮੂਲ ਐਰੇ ਦੇ ਹਰੇਕ ਤੱਤ ਨੂੰ ਬਦਲ ਕੇ ਇੱਕ ਨਵੀਂ ਐਰੇ ਬਣਾਉਂਦਾ ਹੈ। ਇੱਥੇ, ਇਹ JSON ਟੈਂਪਲੇਟਸ ਨੂੰ TabPanel ਆਈਟਮਾਂ ਵਿੱਚ ਬਦਲਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। |
$(selector).html() | ਇੱਕ ਚੁਣੇ ਹੋਏ ਤੱਤ ਦੀ HTML ਸਮੱਗਰੀ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਜਾਂ ਸੈੱਟ ਕਰਨ ਲਈ jQuery ਕਮਾਂਡ। ਇਹ ਇੱਥੇ ਟੈਮਪਲੇਟ ਸਮੱਗਰੀ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। |
expect().toBe() | ਇੱਕ ਜੈਸਟ ਟੈਸਟਿੰਗ ਫੰਕਸ਼ਨ ਜੋ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਅਨੁਮਾਨਿਤ ਮੁੱਲ ਅਸਲ ਮੁੱਲ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਇਹ ਟੈਬਪੈਨਲ ਵਿਵਹਾਰ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। |
.OnClick() | ਇੱਕ DevExpress-ਵਿਸ਼ੇਸ਼ ਵਿਧੀ ਜੋ JavaScript ਫੰਕਸ਼ਨ ਨੂੰ ਇੱਕ ਬਟਨ ਕਲਿੱਕ ਇਵੈਂਟ ਨਾਲ ਜੋੜਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਜਦੋਂ ਬਟਨ ਦਬਾਇਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇਹ ਟੈਬ ਆਬਾਦੀ ਫੰਕਸ਼ਨ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ। |
Loop(false) | TabPanel ਵਿੱਚ ਲੂਪਿੰਗ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਟੈਬਾਂ ਨੂੰ ਬੇਅੰਤ ਚੱਕਰ ਨਹੀਂ ਲਗਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਵਿਜੇਟ ਦੇ ਅੰਦਰ ਉਪਭੋਗਤਾ ਦੇ ਨੈਵੀਗੇਸ਼ਨ ਨੂੰ ਸੀਮਤ ਕਰਨ ਲਈ ਇਹ ਅਕਸਰ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ। |
DeferRendering(false) | ਇਹ ਕਮਾਂਡ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਸਾਰੀਆਂ ਟੈਬਾਂ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਤੁਰੰਤ ਰੈਂਡਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਦੋਂ ਤੱਕ ਟੈਬ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾਂਦਾ ਉਦੋਂ ਤੱਕ ਮੁਲਤਵੀ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਸਦੀ ਵਰਤੋਂ ਸਮੱਗਰੀ ਲੋਡ ਕਰਨ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਤੋਂ ਬਚਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। |
DevExpress ਨਾਲ ASP.NET ਕੋਰ ਵਿੱਚ ਡਾਇਨਾਮਿਕ ਟੈਬਪੈਨਲ ਟੈਂਪਲੇਟ ਪ੍ਰਬੰਧਨ ਨੂੰ ਸਮਝਣਾ
ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਦਾ ਉਦੇਸ਼ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ a ਨੂੰ ਭਰਨਾ ਹੈ DevExpress TabPanel ਇੱਕ ਵਿੱਚ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਕੇ ASP.NET ਕੋਰ ਵਾਤਾਵਰਣ. ਚੁਣੌਤੀ ਉਦੋਂ ਪੈਦਾ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਟੈਂਪਲੇਟਸ, ਜੋ ਕਿ ਰੇਜ਼ਰ ਵਿਊ ਦੇ ਅੰਦਰ ਪਰਿਭਾਸ਼ਿਤ ਹੁੰਦੇ ਹਨ, ਸਹੀ ਢੰਗ ਨਾਲ ਜੋੜਨ ਦੇ ਬਾਵਜੂਦ ਟੈਬ ਦੇ ਅੰਦਰ ਆਪਣੇ ਆਪ ਪ੍ਰਦਰਸ਼ਿਤ ਨਹੀਂ ਹੁੰਦੇ ਹਨ। ਇਹ ਹੱਲ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਟੈਬਪੈਨਲ ਦੀਆਂ ਆਈਟਮਾਂ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਹੇਰਾਫੇਰੀ ਕਰਕੇ `employeeListTemplate` ਅਤੇ `addEditEmployeeTemplate` ਵਰਗੇ ਟੈਂਪਲੇਟਸ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਲੋਡ ਕੀਤਾ ਅਤੇ ਰੈਂਡਰ ਕੀਤਾ ਗਿਆ ਹੈ।
ਮੁੱਖ ਫੰਕਸ਼ਨ, `populateTabPanel`, ਇੱਕ JSON ਸਟ੍ਰਿੰਗ ਤੋਂ ਪਾਰਸ ਕੀਤੇ ਡੇਟਾ ਦੇ ਆਧਾਰ 'ਤੇ ਟੈਬ ਆਈਟਮਾਂ ਦੀ ਇੱਕ ਢਾਂਚਾਗਤ ਐਰੇ ਬਣਾਉਣ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੈ। ਇਸ JSON ਵਿੱਚ ਟੈਬਾਂ ਦਾ ਮੈਟਾਡੇਟਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਉਹਨਾਂ ਦੇ ਸਿਰਲੇਖ ਅਤੇ ਉਹਨਾਂ ਟੈਂਪਲੇਟਾਂ ਦੇ ਨਾਮ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਦਾ ਉਹ ਹਵਾਲਾ ਦਿੰਦੇ ਹਨ। ਵਿਧੀ `JSON.parse()` ਸਟ੍ਰਿੰਗ ਨੂੰ ਇੱਕ ਵਸਤੂ ਵਿੱਚ ਬਦਲਦੀ ਹੈ ਜਿਸਨੂੰ ਫੰਕਸ਼ਨ ਦੁਹਰਾ ਸਕਦਾ ਹੈ, ਹਰ ਇੱਕ ਟੈਬ ਨੂੰ ਇਸਦੇ ਸੰਬੰਧਿਤ ਟੈਮਪਲੇਟ ਨਾਲ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਗਤੀਸ਼ੀਲ ਪਹੁੰਚ ਲਚਕਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਰੇਜ਼ਰ ਵਿੱਚ ਇੱਕ ਵਾਰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਬਿਨਾਂ ਡੁਪਲੀਕੇਸ਼ਨ ਦੇ ਮਲਟੀਪਲ ਟੈਬਾਂ ਵਿੱਚ ਮੁੜ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਵਿਧੀ `$().dxTabPanel("instance")` TabPanel ਵਿਜੇਟ ਦੀ ਉਦਾਹਰਣ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ, ਇਸ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਵਿਧੀਆਂ ਤੱਕ ਸਿੱਧੀ ਪਹੁੰਚ ਦਿੰਦੀ ਹੈ। ਰਨਟਾਈਮ 'ਤੇ ਟੈਬਪੈਨਲ ਵਿੱਚ ਨਵੀਂ ਸਮੱਗਰੀ ਨੂੰ ਇੰਜੈਕਟ ਕਰਨ ਲਈ ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਲੋੜੀਂਦੇ ਢਾਂਚੇ ਵਿੱਚ ਪਾਰਸ ਕੀਤੇ JSON ਤੋਂ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਮੈਪ ਕਰਨ ਤੋਂ ਬਾਅਦ, `ਵਿਕਲਪ("ਆਈਟਮਾਂ", ਆਈਟਮਾਂ)` ਵਿਧੀ ਨਵੀਂ ਟੈਬ ਪਰਿਭਾਸ਼ਾਵਾਂ ਨਾਲ ਟੈਬਪੈਨਲ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਅੱਪਡੇਟ ਕਰਦੀ ਹੈ। ਇਹ ਕਦਮ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਸਹੀ ਟੈਮਪਲੇਟਸ ਉਹਨਾਂ ਦੀਆਂ ਸੰਬੰਧਿਤ ਟੈਬਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕੀਤੇ ਗਏ ਹਨ, ਸਫਲਤਾਪੂਰਵਕ ਬਣਾਏ ਜਾਣ ਦੇ ਬਾਵਜੂਦ ਟੈਬਾਂ ਦੇ ਖਾਲੀ ਦਿਖਾਈ ਦੇਣ ਦੇ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹੋਏ।
ਇਸ ਸੈੱਟਅੱਪ ਵਿੱਚ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਹਿੱਸਾ ਇਹ ਯਕੀਨੀ ਬਣਾ ਰਿਹਾ ਹੈ ਕਿ ਟੈਮਪਲੇਟਸ ਦੀ HTML ਸਮੱਗਰੀ ਨੂੰ `.html()` ਵਿਧੀ ਨਾਲ jQuery ਚੋਣਕਾਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਸਮੱਗਰੀ ਰੇਜ਼ਰ-ਪ੍ਰਭਾਸ਼ਿਤ ਟੈਂਪਲੇਟਸ ਤੋਂ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਤਿਆਰ ਕੀਤੀਆਂ ਟੈਬਾਂ ਵਿੱਚ ਟ੍ਰਾਂਸਫਰ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਮਾਡਿਊਲਰ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਜਿਵੇਂ ਕਿ `parseTemplates` ਅਤੇ `updateTabPanel` ਕੋਡ ਪੜ੍ਹਨਯੋਗਤਾ ਅਤੇ ਮੁੜ ਵਰਤੋਂਯੋਗਤਾ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਸਕ੍ਰਿਪਟ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣ ਅਤੇ ਵਧਾਉਣਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ। ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ, ਜੇਸਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਯੂਨਿਟ ਟੈਸਟ ਲਾਗੂ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਇਹ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹੋਏ ਕਿ TabPanel ਵਿੱਚ ਟੈਬਾਂ ਦੀ ਸੰਭਾਵਿਤ ਸੰਖਿਆ ਹੈ ਅਤੇ ਸਿਰਲੇਖ ਪਹਿਲਾਂ ਤੋਂ ਪਰਿਭਾਸ਼ਿਤ ਮੁੱਲਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ।
ASP.NET ਕੋਰ ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ DevExpress TabPanel ਟੈਂਪਲੇਟਸ ਨੂੰ ਸੰਭਾਲਣਾ
ਇਹ ਪਹੁੰਚ ਸਮੱਗਰੀ ਦੀ ਸਹੀ ਰੈਂਡਰਿੰਗ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, ਟੈਬ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਲੋਡ ਅਤੇ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ ASP.NET ਕੋਰ ਵਿੱਚ DevExpress ਕੰਪੋਨੈਂਟਸ ਦੇ ਨਾਲ JavaScript ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨ 'ਤੇ ਕੇਂਦਰਿਤ ਹੈ।
// Front-end solution using JavaScript for dynamic template handling
function populateTabPanel() {
let jsonString = '{
"ParentID": 1,
"ParentName": "Administration",
"ID": 1,
"Text": "Employee",
"Templates": [
{"ID": 1, "TemplateName": "employeeListTemplate", "Title": "Current Employees"},
{"ID": 2, "TemplateName": "addEditEmployeeTemplate", "Title": "Add/Update Employee"}
]
}';
let templateObj = JSON.parse(jsonString);
let items = templateObj.Templates.map(t => ({
template: $(`#${t.TemplateName}`).html(),
title: t.Title
}));
$("#contentTabPanel").dxTabPanel("instance").option("items", items);
}
ਡਾਇਨਾਮਿਕ ਟੈਬ ਸਮੱਗਰੀ ਲਈ ਮਾਡਿਊਲਰ JavaScript ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ
ਇਹ ਸੰਸਕਰਣ ਕੋਡ ਮਾਡਯੂਲਰਿਟੀ ਅਤੇ ਮੁੜ ਵਰਤੋਂ 'ਤੇ ਜ਼ੋਰ ਦਿੰਦਾ ਹੈ, ਰੱਖ-ਰਖਾਅ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਟੈਬਾਂ ਨੂੰ ਪਾਰਸ ਕਰਨ ਅਤੇ ਅਪਡੇਟ ਕਰਨ ਲਈ ਵੱਖਰੇ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ।
// Function to parse template JSON
function parseTemplates(json) {
return JSON.parse(json).Templates.map(template => ({
template: $(`#${template.TemplateName}`).html(),
title: template.Title
}));
}
// Function to update TabPanel with new items
function updateTabPanel(items) {
const tabPanel = $("#contentTabPanel").dxTabPanel("instance");
tabPanel.option("items", items);
}
// Main function to populate TabPanel
function populateTabPanel() {
const jsonString = '{"Templates": [
{"TemplateName": "employeeListTemplate", "Title": "Current Employees"},
{"TemplateName": "addEditEmployeeTemplate", "Title": "Add/Update Employee"}
]}';
const items = parseTemplates(jsonString);
updateTabPanel(items);
}
DevExpress ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਬੈਕਐਂਡ ਰੇਜ਼ਰ ਕੋਡ
ਇਹ ਹਿੱਸਾ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਰੇਜ਼ਰ ਸਿੰਟੈਕਸ ਨੂੰ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਕਿਵੇਂ ਵਰਤਣਾ ਹੈ ਜੋ ਉੱਪਰਲੇ JavaScript ਕੋਡ ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਹਵਾਲਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।
@(Html.DevExtreme().Button()
.ID("addTabsButton")
.OnClick("populateTabPanel")
.Text("Add Tabs")
.Type(ButtonType.Default)
.Width(100)
)
@(Html.DevExtreme().TabPanel()
.ID("contentTabPanel")
.Loop(false)
.AnimationEnabled(false)
.DeferRendering(false)
.RepaintChangesOnly(false)
)
@using (Html.DevExtreme().NamedTemplate("employeeListTemplate")) {
@(Html.DevExtreme().DataGrid()
.Columns(c => {
c.Add().DataField("FirstName").AllowEditing(true);
c.Add().DataField("LastName").AllowEditing(true);
})
)
}
@using (Html.DevExtreme().NamedTemplate("addEditEmployeeTemplate")) {
<div>This is Admin -> Add/Edit Employee</div>
}
JavaScript ਟੈਬਪੈਨਲ ਕਾਰਜਸ਼ੀਲਤਾ ਲਈ ਯੂਨਿਟ ਟੈਸਟ
ਇਹ ਟੈਸਟ ਡਾਇਨਾਮਿਕ ਆਬਾਦੀ ਦੇ ਬਾਅਦ ਟੈਬਾਂ ਦੀ ਸੰਖਿਆ ਅਤੇ ਉਹਨਾਂ ਦੀ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰਕੇ TabPanel ਫੰਕਸ਼ਨ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।
describe('TabPanel Population', () => {
it('should correctly populate TabPanel with templates', () => {
populateTabPanel();
const tabPanelInstance = $("#contentTabPanel").dxTabPanel("instance");
const items = tabPanelInstance.option('items');
expect(items.length).toBe(2);
expect(items[0].title).toBe('Current Employees');
expect(items[1].title).toBe('Add/Update Employee');
});
});
DevExpress TabPanel ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਸੁਧਾਰ ਕਰਨਾ
ਦੇ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ DevExpress TabPanel, ਇੱਕ ਹੋਰ ਨਾਜ਼ੁਕ ਪਹਿਲੂ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਸਮਗਰੀ ਨੂੰ ਪੂਰੇ ਪੰਨੇ ਦੇ ਰੀਲੋਡ ਦੀ ਲੋੜ ਤੋਂ ਬਿਨਾਂ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਅਪਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਆਧੁਨਿਕ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਬਣਾਉਣ ਵੇਲੇ ਇਹ ਜ਼ਰੂਰੀ ਹੈ ਜਿੱਥੇ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨ ਤੇਜ਼ ਅਤੇ ਜਵਾਬਦੇਹ ਹੋਣ ਦੀ ਲੋੜ ਹੈ। ਟੈਂਪਲੇਟਸ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਸਮੱਗਰੀ ਨੂੰ ਇੰਜੈਕਟ ਕਰਨ ਦਾ ਇੱਕ ਕੁਸ਼ਲ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ ASP.NET ਕੋਰ ਐਪਲੀਕੇਸ਼ਨ. ਹਾਲਾਂਕਿ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਧਿਆਨ ਨਾਲ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਦੇਰੀ ਜਾਂ ਰੈਂਡਰਿੰਗ ਮੁੱਦਿਆਂ ਨੂੰ ਰੋਕਣ ਲਈ ਟੈਬਪੈਨਲ ਦੇ ਅੰਦਰ ਟੈਂਪਲੇਟਸ ਨੂੰ ਕਿਵੇਂ ਰੈਂਡਰ ਅਤੇ ਰਿਫ੍ਰੈਸ਼ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਇੱਕ ਆਮ ਚੁਣੌਤੀ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੈ ਕਿ TabPanel ਕਿਸੇ ਵੀ ਬੈਕਐਂਡ ਤਬਦੀਲੀਆਂ ਨੂੰ ਸਹੀ ਰੂਪ ਵਿੱਚ ਦਰਸਾਉਂਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਟੈਂਪਲੇਟ ਜਾਂ ਡੇਟਾ ਗਰਿੱਡ ਲਾਈਵ ਡੇਟਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ। ਇਸ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ option() TabPanel ਸਮੱਗਰੀ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਦਾ ਤਰੀਕਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਨਵਾਂ ਡੇਟਾ ਸਹਿਜੇ ਹੀ ਇੰਜੈਕਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, DeferRendering 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ false ਡਿਫੌਲਟ ਆਲਸੀ-ਲੋਡਿੰਗ ਵਿਵਹਾਰ ਤੋਂ ਬਚਣ ਲਈ, ਜਿਸ ਨਾਲ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਹੱਥੀਂ ਰਿਫ੍ਰੈਸ਼ ਹੋਣ ਤੱਕ ਅਦਿੱਖ ਰਹਿ ਸਕਦਾ ਹੈ। ਇਹ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਸਮਗਰੀ ਨੂੰ ਤੁਰੰਤ ਦਿਖਾਈ ਦੇਣ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ, ਨਿਰਵਿਘਨ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨ ਨੂੰ ਕਾਇਮ ਰੱਖਦੇ ਹੋਏ।
ਵਿਚਾਰ ਕਰਨ ਲਈ ਇਕ ਹੋਰ ਪਹਿਲੂ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਸਮੱਗਰੀ ਨੂੰ ਇੰਜੈਕਟ ਕਰਦੇ ਸਮੇਂ ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣਾ ਹੈ। JavaScript ਨਾਲ ਸਹੀ ਤਰੁੱਟੀ ਨੂੰ ਸੰਭਾਲਣਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਗੁੰਮ ਜਾਂ ਖਰਾਬ ਟੈਂਪਲੇਟ ਟੈਬਪੈਨਲ ਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਨਹੀਂ ਤੋੜਦੇ ਹਨ। ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਇੱਕ ਡਿਫੌਲਟ ਸੁਨੇਹਾ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਫਾਲਬੈਕ ਤਰਕ ਲਾਗੂ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜੇਕਰ ਕੋਈ ਟੈਮਪਲੇਟ ਲੋਡ ਹੋਣ ਵਿੱਚ ਅਸਫਲ ਹੁੰਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਟੈਂਪਲੇਟਸ ਸਹੀ ਢੰਗ ਨਾਲ ਕੈਸ਼ ਕੀਤੇ ਗਏ ਹਨ ਅਤੇ ਦੁਬਾਰਾ ਵਰਤੇ ਗਏ ਹਨ ਜ਼ਰੂਰੀ ਹੈ। ਇਹ ਬੇਲੋੜੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ ਅਤੇ ਉਪਭੋਗਤਾ ਇੰਟਰਫੇਸ ਲਈ ਲੋਡ ਸਮੇਂ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦਾ ਹੈ।
DevExpress TabPanel ਵਿੱਚ ਡਾਇਨਾਮਿਕ ਤੌਰ 'ਤੇ ਟੈਂਪਲੇਟਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
- ਮੈਂ ਇਹ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾਵਾਂ ਕਿ ਮੇਰੇ ਟੈਂਪਲੇਟ ਤੁਰੰਤ ਰੈਂਡਰ ਕੀਤੇ ਗਏ ਹਨ?
- ਦੀ ਵਰਤੋਂ ਕਰੋ DeferRendering(false) ਸਾਰੇ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਇੱਕੋ ਵਾਰ ਰੈਂਡਰ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਨ ਲਈ ਤੁਹਾਡੀ ਟੈਬਪੈਨਲ ਸੰਰਚਨਾ ਵਿੱਚ ਵਿਕਲਪ।
- ਮੈਂ ਪੰਨੇ ਨੂੰ ਤਾਜ਼ਾ ਕੀਤੇ ਬਿਨਾਂ TabPanel ਸਮੱਗਰੀ ਨੂੰ ਕਿਵੇਂ ਅੱਪਡੇਟ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ tabPanelInstance.option("items", newItems) JavaScript ਰਾਹੀਂ ਸਮੱਗਰੀ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਅੱਪਡੇਟ ਕਰਨ ਲਈ।
- ਮੈਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜੇਕਰ ਮੇਰੇ ਟੈਂਪਲੇਟਸ ਠੀਕ ਤਰ੍ਹਾਂ ਲੋਡ ਨਹੀਂ ਹੁੰਦੇ ਹਨ?
- ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਟੈਮਪਲੇਟ ਨਾਮ JSON ਵਸਤੂ ਅਤੇ HTML ਤੱਤਾਂ ਦੋਵਾਂ ਵਿੱਚ ਬਿਲਕੁਲ ਮੇਲ ਖਾਂਦੇ ਹਨ। ਨਾਲ ਹੀ, ਇਸਦੀ ਪੁਸ਼ਟੀ ਕਰੋ $("#templateID").html() ਵੈਧ ਸਮੱਗਰੀ ਵਾਪਸ ਕਰਦਾ ਹੈ।
- ਕੀ ਮੈਂ ਹਰੇਕ ਟੈਬ ਨੂੰ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਲੋਡ ਕਰ ਸਕਦਾ ਹਾਂ ਜਦੋਂ ਇਹ ਚੁਣਿਆ ਜਾਂਦਾ ਹੈ?
- ਹਾਂ, ਤੁਸੀਂ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ DeferRendering(true) ਆਲਸੀ ਲੋਡਿੰਗ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ ਕਿ ਟੈਬਸ ਕੇਵਲ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ 'ਤੇ ਸਮੱਗਰੀ ਲੋਡ ਕਰਨ।
- ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਇੰਜੈਕਟ ਕਰਦੇ ਸਮੇਂ ਮੈਂ ਗਲਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਾਂ?
- ਵਰਤੋ try-catch ਤੁਹਾਡੇ JavaScript ਕੋਡ ਵਿੱਚ ਤਰੁੱਟੀਆਂ ਦਾ ਸ਼ਾਨਦਾਰ ਪ੍ਰਬੰਧਨ ਕਰਨ ਅਤੇ ਲੋੜ ਪੈਣ 'ਤੇ ਫਾਲਬੈਕ ਸਮੱਗਰੀ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ ਬਲਾਕ ਕਰਦਾ ਹੈ।
ਡਾਇਨਾਮਿਕ ਟੈਂਪਲੇਟ ਹੈਂਡਲਿੰਗ 'ਤੇ ਅੰਤਿਮ ਵਿਚਾਰ
DevExpress TabPanels ਵਿੱਚ ਟੈਂਪਲੇਟਾਂ ਦਾ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਇੰਟਰਫੇਸ ਵਿੱਚ ਹਨ ASP.NET ਕੋਰ ਐਪਲੀਕੇਸ਼ਨ ਗਤੀਸ਼ੀਲ ਅਤੇ ਜਵਾਬਦੇਹ ਹਨ। ਇਹ ਪਹੁੰਚ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਂਦੇ ਹੋਏ, ਪੂਰੇ ਪੰਨੇ ਦੇ ਰੀਲੋਡ ਦੀ ਲੋੜ ਨੂੰ ਘੱਟ ਕਰਦੀ ਹੈ। ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਪਾਰਸ ਅਤੇ ਇੰਜੈਕਟ ਕਰਨ ਲਈ JavaScript ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਸਕੇਲੇਬਲ ਅਤੇ ਸਾਂਭਣਯੋਗ ਕੋਡ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਜਿਵੇਂ ਕਿ ਮੁਲਤਵੀ ਰੈਂਡਰਿੰਗ ਨੂੰ ਅਯੋਗ ਕਰਨਾ ਅਤੇ ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣਾ ਆਮ ਸਮੱਸਿਆਵਾਂ ਜਿਵੇਂ ਕਿ ਅਦਿੱਖ ਸਮੱਗਰੀ ਅਤੇ ਟੁੱਟੀਆਂ ਟੈਬਾਂ ਨੂੰ ਰੋਕਦਾ ਹੈ। ਵਿਚਾਰੇ ਗਏ ਤਰੀਕਿਆਂ ਨਾਲ, ਡਿਵੈਲਪਰ ਇਹ ਯਕੀਨੀ ਬਣਾ ਸਕਦੇ ਹਨ ਕਿ ਸਹੀ ਸਮੱਗਰੀ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਲੋਡ ਕੀਤੀ ਗਈ ਹੈ, ਉਹਨਾਂ ਦੇ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਅੰਦਰ ਤੇਜ਼ ਅਤੇ ਭਰੋਸੇਮੰਦ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹੋਏ।
ਡਾਇਨਾਮਿਕ DevExpress TabPanel ਹੈਂਡਲਿੰਗ ਲਈ ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
- ASP.NET ਕੋਰ ਵਿੱਚ DevExpress TabPanel ਦੀ ਵਰਤੋਂ ਕਰਨ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ ਦਸਤਾਵੇਜ਼: DevExpress ਦਸਤਾਵੇਜ਼ .
- ASP.NET ਕੋਰ ਵਿੱਚ JavaScript ਭਾਗਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਵਧੀਆ ਅਭਿਆਸ: ASP.NET ਕੋਰ ਡੌਕੂਮੈਂਟੇਸ਼ਨ .
- JavaScript ਨਾਲ ਸਮੱਗਰੀ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਇੰਜੈਕਟ ਕਰਨ ਬਾਰੇ ਡੂੰਘਾਈ ਨਾਲ ਟਿਊਟੋਰਿਅਲ: MDN JavaScript ਗਾਈਡ .