感谢您阅读。
我正在构建一个数据录入表单。我正在尝试找出一种方法,让用户提供一个条件(例如姓氏),搜索员工表以获取所有符合条件的员工,并以一种可以选择正确员工的方式显示结果,然后将该员工的ID传回数据录入表单,以便他们完成记录并保存它。
谢谢
感谢您阅读。
我正在构建一个数据录入表单。我正在尝试找出一种方法,让用户提供一个条件(例如姓氏),搜索员工表以获取所有符合条件的员工,并以一种可以选择正确员工的方式显示结果,然后将该员工的ID传回数据录入表单,以便他们完成记录并保存它。
谢谢
$('#searchBox').autocomplete( '/Employees/Search', {
dataType: 'json',
max: 25,
minChars: 2,
cacheLength: 1,
mustMatch: true,
formatItem: function(data,i,max,value) {
return value;
},
parse: function(data) {
var array = new Array();
for (var i=0; i < data.length; i++) {
var datum = data[i];
var display = datum.FirstName + ' ' + datum.LastName;
array[array.length] = { data: datum, value: display, result: display };
}
}
});
$('#searchBox').result( function(event, data, formatted) {
if (data) {
$('#employeeID').val( data.EmployeeID );
}
});
$('form').submit( function() {
if (!$('#employeeID').val()) {
alert( 'You must select an employee before clicking submit!' );
return false;
}
});
<input type='text' id='searchBox' />
<input type='hidden' id='employeeID' name='employeeID' />
Controller:
public ActionResult Search( string q, int limit )
{
var query = db.Employees.Where( e => e.LastName.StartsWith( q ) )
.OrderBy( e => e.LastName )
.Select( e => new
{
FirstName = e.FirstName,
LastName = e.LastName,
EmployeeID = e.EmployeeID
});
if (limit > 0)
{
query = query.Take(limit);
}
return Json( query.ToList() );
}
public ActionResult SomeAction( int employeeID, ... )
{
...
}
我建议使用Linq。
可以考虑查看Scott Gu的示例博客......
http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
public static void GetEmployeeIDByLastName(string lastName)
{
DataContext dc = new DataContext();
var queryResult = from q in dc.Employee
where q.EmployeeLastName.Equals(lastName)
select new {
EmployeeID = q.EmployeeID
}
foreach(var empID in queryResult)
{
//pass the empID value back to the display
}
}
public ActionResult searchEmployees(string searchString) {
var employees = (from e in db.Employees
where e.Name.Contains(searchString)
orderby e.Name
select e);
return view("SearchResult", employees);
}
编辑:刚刚看到了您的评论,如果我理解正确,您只对ID感兴趣。您是在JavaScript中使用它们吗?这是某种ajax调用吗?在这种情况下,您可能希望返回一个数组或CSV字符串,并在JavaScript调用中处理ID。