К сожалению, компонент rally.sdk.ui.Table
перерисовывает ячейку, когда происходит событие изменения размера.Элемент холста, на котором вы рисуете, заменяется новым элементом холста при изменении размера.
Вместо того, чтобы рисовать с помощью холста, вы можете создать панель в ячейке, используя только HTML и CSS.
![enter image description here](https://i.stack.imgur.com/xkzaP.png)
Добавьте этот HTML-код в свойство, которое вы хотите отобразить в виде столбца вместо элемента canvas:
<div class="bar">
<div class="percentDone" style="width: 50%">50%</div>
</div>
И добавьте также следующие стили:
<style type="text/css">
.bar .percentDone {
text-align: center;
background-color: #EDB5B1;
}
</style>
Надеюсь, это даст вам то, что вы ищете.Вот полный код приложения с пустыми данными:
<html>
<head>
<title>Percent Done with CSS example</title>
<meta name="Name" content="Percent Done with CSS example" />
<style type="text/css">
.bar .percentDone {
text-align: center;
background-color: #EDB5B1;
}
</style>
<script type="text/javascript" src="/apps/1.31/sdk.js"></script>
<script type="text/javascript">
rally.addOnLoad(function(){
var table = new rally.sdk.ui.Table({
columns: [
{key: 'name', header: 'Name', width: 100},
{key: 'percentDone', header: 'Percent Done', width: 100}
]
});
table.addRows([
{
name: 'Test 1',
percentDone: '<div class="bar"><div class="percentDone" style="width: 50%">50%</div></div>'
},
{
name: 'Test 2',
percentDone: '<div class="bar"><div class="percentDone" style="width: 70%">70%</div></div>'
}
]);
table.display('container');
});
</script>
</head>
<body>
<div id="container"></div>
</body>
</html>