利用Noesis.Javascript开源组件可以做到在.net中执行js脚本,同时js脚本也能调用C#函数。这个组件的获得方式:在NuGet中输入搜索”Noesis”就能找到,我们来做个搜索功能:用户能够在textbox中输入js脚本来筛选list记录
界面如下:
然后,click filter button后的UI:
看,筛选出来了,代码如下(js能调C#写的UserInfo类的各个属性)
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public override string ToString()
{
return string.Format(“{0}, {1}: {2}”, FirstName, LastName, Age);
}
}
private void btnSearch_Click(object sender, EventArgs e)
{
List users = FilterUsers(txtFilter.Text.Trim());
lstUsers.DataSou
来源gao!%daima.com搞$代*!码网
rce = users;
}
private List FilterUsers(string jsFilter)
{
List results = new List();
if (jsFilter.Trim().Length == 0)
return this.users;
try
{
using (JavascriptContext context = new JavascriptContext())
{
foreach (UserInfo user in this.users)
{
context.SetParameter(“user”, user);
context.SetParameter(“isInclude”, false);
string js = string.Format(@”
if({0})
isInclude=true;
else
isInclude=false;”, jsFilter);
context.Run(js);
bool isInclude = (bool)context.GetParameter(“isInclude”);
if (isInclude)
results.Add(user);
}
}
}
catch
{
txtFilter.Focus();
txtFilter.SelectAll();
return this.users;
}
return results;
}
以上就是利用noesis.Javascript开源组件.Net中执行javascript脚本的详细内容,更多请关注gaodaima搞代码网其它相关文章!