Я использую шаблон jquery для загрузки данных из службы WCF. Смотрите ниже кодjquery template not refreshing data
function loadTableDetails(id) {
var input =
{
Id: id,
};
self.TableDetailList([]);
return $.ajax({
url: "../Service/Table/TableList",
type: "PUT",
contentType: 'application/json',
processData: false,
data: JSON.stringify(input),
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
},
success: function(allData) {
var mappedData = $.map(allData, function(item) {
return new TableDetailData(item);
});
self.TableDetailList(mappedData);
$("#instructorTemplate").tmpl(self.TableDetailList())
.appendTo("#instructorsList");
}
});
}
Меня связывают его для просмотра, как показано ниже
<table id="Table1" style="width: 100%;">
<colgroup>
<col class="tblResultsCol1" style="width: 20px" />
<col class="tblResultsCol2" style="width: 80px" />
<col />
</colgroup>
<script id="instructorTemplate" type="text/x-jquery-tmpl">
<tr>
<td style="padding: 0px; text-align: left">${Id}</td>
<td style="padding: 0px;">${ListName}</td>
</tr>
</script>
<tbody id="instructorsList">
</tbody>
</table>
Я называю эту функцию loadTableDetails на события нажатия кнопки и передать Id от выбранного элемента ComboBox. Он правильно загружает данные в первый раз. Но когда пользователь выбирает другой элемент в combox, он добавляет данные из старого результата в новый результат. Короче говоря, он продолжает добавлять данные из предыдущего результата. Я также пытался очистить наблюдаемый массив self.TableDetailList([])
, прежде чем снова позвонить в службу, но это не поможет.
Любые идеи?
Бинго. Работает отлично. Благодаря тонну. Я загружаю более 30 тыс. Записей, так что нормально использовать шаблон jquery? Это не занимает много времени для загрузки данных. – DevelopmentIsMyPassion
Теперь стоит один вопрос. Когда я загружаю эти 30K записей в свою таблицу. Прокрутка записей занимает много времени. Должен ли я задавать новый вопрос для этого? – DevelopmentIsMyPassion
Если у вас возникла новая проблема, подобная этой проблеме производительности, обычным способом является задание нового вопроса ... но 30K много записей ... и может быть много причин, почему это медленное для вас. – nemesv