I studied the snippet and noticed an quite ambigouos thing:
The value of data.Total that you are setting as a limit for the pager is not the total data count indeed. Total data count for the pager is the number of data records in the component, which is in fact reflected in data.SearchResult.length (or data.currentResult).
Moreover, you needn’t manually update the pager - its parameters will be calculated automatically on the base of current list data. So you can totally omit the code.
You can call a parse function instead of running a loop with item adding:
//new item will be added at the end of current dataset
$$("lstResults").parse({
data:data.SearchResult,
pos:$$("lstResults").count()
});
The only thing is that data fields should coincide with template properties of the list.