「カスタム」でない限り、ユーザーがDropDownListの値を選択したら、強制的に送信することを検討しています。「カスタム」の場合、フォームを送信したくありません。代わりに、startingDateとendingDateを表示したいと思います。ただし、[カスタム]が選択されていない限り、startingDateまたはendingDateを表示したくありません。これはjQueryまたはJavaScriptで行う必要があると思います。誰かがこれを達成する方法を教えてもらえますか?
ビューへのドロップダウンの開始日、終了日、リストを渡すためにコントローラーにあるコードは次のとおりです。
List<SelectListItem> rangeList = new List<SelectListItem>();
rangeList.Add(new SelectListItem { Text = "Today", Value = "Today" });
rangeList.Add(new SelectListItem { Text = "Yesterday", Value = "Yesterday" });
rangeList.Add(new SelectListItem { Text = "Past 7 Days", Value = "Past 7 Days" });
rangeList.Add(new SelectListItem { Text = "Past 30 Days", Value = "Past 30 Days" });
rangeList.Add(new SelectListItem { Text = "Last Month", Value = "Last Month" });
rangeList.Add(new SelectListItem { Text = "Custom", Value = "Custom" });
ViewBag.rangeList = rangeList;
ViewBag.startingDate = startingDate;
ViewBag.endingDate = endingDate;
ViewBag.specifiedRange = specifiedRange;
編集
スクリプトを追加する試みを示すようにコードを変更しました。以下は私が今ビューに持っているコードです。何もしていません。
<script type="text/javascript">
$("#range").change(function ()
{
if ($(this).val() == "Custom")
{
$("p.down").toggle();
}
else
{
$("form").submit();
}
});
</script>
@using (Html.BeginForm())
{
<p>
@Html.DropDownList("specifiedRange", new SelectList(
ViewBag.rangeList as System.Collections.IEnumerable,
"Text",
"Value",
new { @Id = "range" }))
</p>
<p class = "down">
Starting Date: @(Html.Telerik().DateTimePicker().Name("startingDate"))
Ending Date: @(Html.Telerik().DateTimePicker().Name("endingDate"))
<input type="submit" value="GO" />
</p>
}