我知道如何解决这个问题,但我在处理与网络相关的任何事情方面经验很少。
情况是:我有一个控制器,它返回一个带有用户控件的视图。在用户控件内我有3个下拉列表;一个用于公司,一个用于现场办公室,一个用于设施。当公司ddl被改变时,现场办公室和设施ddl应该改变,当外地办事处ddl被改变时,设施ddl应该改变。
的Index.aspx '<%@ Page Title =“ManifestSearchPage”AutoEventWireup =“true”Language =“C#”MasterPageFile =“〜/ Views / Shared / Site.Master”Inherits =“System.Web.Mvc.ViewPage”%>
表现
<form id="form1" runat="server">
<% using (Html.BeginForm()) { %>
<fieldset>
<legend><h2>Find a Manifest</h2></legend>
<table>
<tr>
<td>
<img src="../../Content/magnify-large.jpg" width="111" height="111" align="middle"></img>
</td>
<td>
<% Html.RenderPartial("../Shared/EditorTemplates/ManifestSearch");%>
</td>
</tr>
</table>
</fieldset>
<%
}%&gt;
<h2>Search Results</h2>
<div id="resultspanel">
<table>
<tr>
</tr>
<% foreach (var item in Model.SearchResults) { %>
<tr>
<td>
blargh
</td>
</tr>
<% } %>
</table>
</div>
</form>
“
ManifestSearch.aspx “ &lt;%@ Control Language =“C#”Inherits =“System.Web.Mvc.ViewUserControl”%&gt;
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<table>
<tr>
<td>
<%: Html.LabelFor(model => model.ManifestPartialId) %>
<%: Html.CheckBoxFor(model => model.SearchByManifestPartialId)%>
<%: Html.ValidationMessageFor(model => model.SearchByManifestPartialId) %>
</td>
<td>
<%: Html.LabelFor(model => model.CompanyId) %>
<%: Html.CheckBoxFor(model => model.SearchByCompanyId)%>
<%: Html.ValidationMessageFor(model => model.SearchByCompanyId) %>
</td>
</tr>
<tr>
<td>
<%: Html.TextBoxFor(model => model.ManifestPartialId) %>
<%: Html.ValidationMessageFor(model => model.ManifestPartialId) %>
</td>
<td>
<%: Html.DropDownList("CompanyId", new SelectList(ViewData["Companies"] as IEnumerable,"Id","CompanyName", Model.CompanyId))%>
<%: Html.ValidationMessageFor(model => model.CompanyId) %>
</td>
</tr>
<tr>
<td>
<%: Html.LabelFor(model => model.FieldOfficeId) %>
<%: Html.CheckBoxFor(model => model.SearchByFieldOfficeId)%>
<%: Html.ValidationMessageFor(model => model.SearchByFieldOfficeId) %>
</td>
<td>
<%: Html.LabelFor(model => model.FacilityId) %>
<%: Html.CheckBoxFor(model => model.SearchByFacilityId)%>
<%: Html.ValidationMessageFor(model => model.SearchByFacilityId) %>
</td>
</tr>
<tr>
<td>
<%: Html.DropDownList("FieldOfficeId", new SelectList(ViewData["FieldOffices"] as IEnumerable, "Id", "FacilityName", Model.FieldOfficeId))%>
<%: Html.ValidationMessageFor(model => model.FieldOfficeId) %>
</td>
<td>
<%: Html.DropDownList("FacilityId", new SelectList(ViewData["Facilities"] as IEnumerable, "Id", "FacilityName", Model.FacilityId))%>
<%: Html.ValidationMessageFor(model => model.FacilityId) %>
</td>
</tr>
<tr>
<td>
<%: Html.LabelFor(model => model.SearchByDateTime) %>
<%: Html.CheckBoxFor(model => model.SearchByDateTime) %>
<%: Html.ValidationMessageFor(model => model.SearchByDateTime) %>
</td>
<td>
</td>
</tr>
<tr>
<td>
<%: Html.LabelFor(model => model.FromDate) %>
<%: Html.TextBoxFor(model => model.FromDate) %>
<%: Html.ValidationMessageFor(model => model.FromDate) %>
</td>
<td>
<%: Html.LabelFor(model => model.ToDate) %>
<%: Html.TextBoxFor(model => model.ToDate) %>
<%: Html.ValidationMessageFor(model => model.ToDate) %>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="Search" />
</td>
</tr>
</table>
</fieldset>
<% } %>
这一切都有效,但我的下拉列表没有被链接的要求除外。
我知道我必须使用Javascript来完成我对相关下拉列表的要求,但我不知道如何处理它。我找到了一些教程,但似乎没有任何与我设置代码的方式有关。任何人都可以帮忙吗?
答案 0 :(得分:1)
首先,对于这里的所有jQuery人
如果你正在使用jQuery,你可以使用Change Event Handler来改变你的下拉菜单。
$('#firstSelect').change(function() {
// DO STUFF
});
如果不使用jQuery,可以在下拉菜单中使用onchange属性
<script type="text/javascript>
function doStuffOnChange() {
// DO STUFF
}
</script>
<select id="firstSelect" onchange="doStuffOnChange();">
您可以使用此变体
添加HTML帮助程序的HTML属性public static MvcHtmlString DropDownList(
this HtmlHelper htmlHelper,
string name,
IEnumerable<SelectListItem> selectList,
IDictionary<string, Object> htmlAttributes
)