我的目标是在活动目录中搜索员工,并允许我在下拉列表中选择搜索选项。
例如:如果我选择带有执行的EmployeeNumber
表单并搜索与输入框值匹配的EmployeeNumber
。 - " SamAccountName
是默认搜索"
注意:
EmployeeNumber
时,它应该提交表单。 SamAccountName
按钮正在运行。
问题:如何使用不同的提交或搜索选项?
@using (Html.BeginForm("SystemPrepared", "Home", FormMethod.Get))
{
@Html.TextBox("spq", null, new { @class = "form-control", @placeholder = "Search..."})
<div class="input-group-btn">
<button class="btn btn-default" type="submit">SamAccountName</button>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="#">SamAccountName</a></li>
<li><a href="#">EmployeeNumber</a></li>
<li><a href="#">GivenName</a></li>
<li><a href="#">Surname</a></li>
<li><a href="#">EmailAddress</a></li>
<li><a href="#">Enable</a></li>
<li><a href="#">GUID</a></li>
<li><a href="#">SID</a></li>
</ul>
</div>
}
我尝试过的事情:
<li><a href="?fltr=EmployeeNumber">EmployeeNumber</a></li>
使用请求查询字符串获取值,但问题是表单提交并且spq
为空或为空。
更新
斯蒂芬要求
public ActionResult SystemPrepared(string spq)
{
coockieActiveDirectory2 = db.ActiveDirectory2.Where(user =>
user.SamAccountName.Contains(spq));
return View(coockieActiveDirectory2);
}
目前这正是我在控制器中所拥有的
答案 0 :(得分:1)
您正在使用的Bootstrap控件并非真正专为此任务而设计。你真正需要的是:
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></button>
<ul class="dropdown-menu" role="menu">
<li><button type="submit" name="searchType" value="SamAccountName">SamAccountName</button></li>
<li><button type="submit" name="searchType" value="EmployeeNumber">EmployeeNumber</button></li>
<li><button type="submit" name="searchType" value="GivenName">GivenName</button></li>
...
</ul>
换句话说,当您点击其中一个项目时,它会提交表单并发布一些searchType
的值,然后您可以使用该值来根据用户进行正确的搜索类型点击。但是,Bootstrap样式不处理该场景。这并不意味着您无法添加自己的样式,使其看起来像常规按钮下拉列表。
或者,如果您想坚持使用默认的Bootstrap样式/控件,并且不介意使用JavaScript,那么您可以执行以下操作:
<input type="hidden" name="searchType" id="SearchType" />
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="#" class="search-submit" data-search-type="SamAccountName">SamAccountName</a></li>
<li><a href="#" class="search-submit" data-search-type="EmployeeNumber">EmployeeNumber</a></li>
<li><a href="#" class="search-submit" data-search-type="GivenName">GivenName</a></li>
...
</ul>
然后添加如下的脚本:
$('.search-submit').on('click', function (e) {
e.preventDefault();
var searchType = $(this).data('search-type');
$('#SearchType').val(searchType);
$('#YourForm').submit();
});
换句话说,您将事件处理程序绑定到按钮下拉链接,该链接将隐藏字段设置为正确的值,然后发布表单。