怎么给设置了ajax的select2控件设置一个值呢

如何给设置了ajax的select2控件设置一个值呢?
这个是我select2控件的初始化代码:

$('#productId').select2({
language : 'zh-CN',
placeholder:"输入产品名称",//文本框的提示信息
minimumInputLength:2,   //至少输入n个字符,才去加载数据
maximumInputLength:100,//限制最大字符,以防坑货
ajax: {
url: home+'/erppurchase/searchpic.shtml',
     dataType: 'json',
     delay: 250,
     data: function (params) {
       return {
       'term' : params.term // 查询的关键字
         };
        },
        processResults: function (data, page) {
       return {
        results: data.items
        };
       },
       cache: true
     },
     escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
     templateResult: formatRepo, // 显示查询结果
     templateSelection: formatRepoSelection // 显示选中的对象
});
function formatRepo (repo) {
    if (repo.loading) return repo.text;
    var markup = '<div class="clearfix">' +
    '<div class="col-sm-12">' +
    '<img src="' + repo.urlWithAppend + '" style="max-width: 100%" />' +
    '</div>' + 
    '<div class="col-sm-12">' + repo.no + '</div>' +
    '</div>';
    return markup;
  }
function formatRepoSelection (repo) {
return repo.no;
}

我现在是想从后台传一个term的特征值过来,然后触发原始的查询方法,然后将查询结果的第一个选项设置为当前选项,该如何做呢?
------解决思路----------------------
将term值赋给输入框,然后触发change事件或者keypress事件(假定这个控件是通过这些事件触发ajax的)
------解决思路----------------------
asp.net只有 UpdatePanel 是它的(8、9年前的)ajax解决方案。

如果你使用现代的 ajax 编程方法,它是跟 asp.net 的机制不协调的。无奈只有放弃 asp.net 的所谓“后台”思路。你根本就不应该在 asp.net 中对浏览器上的渲染编程,你的 asp.net 程序应该仅用于下载(与客户端 html/css 无关的)数据。
------解决思路----------------------
所谓“后台”就应该是一个独立的数据web服务。

ajax获得数据之后,所谓“触发原始的查询方法”是根本做不到的(因为用户可能上厕所去了而没有坐在电脑前面,就算坐在这里你的程序也不可能抓着人家的鼠标去操作)。你能够做的是在ajax的查询返回结果函数中“给另一个列表赋值,然后绑定另一个列表的选择事件,在这个事件处理js函数中读取结果并且再注销这个事件处理js函数。
------解决思路----------------------
$('input').val('term');
$('input').change();//这个需要确认你这个select2是通过change还是keyup,keydown,keypress哪个事件触发的,然后这里模拟触发