在没有 JavaScript 或 JQuery 的情况下单击按钮时重置 @HTML.DropDownList & Table
Reset a @HTML.DropDownList & Table on button click without JavaScript or JQuery
您好,我是 MVC 新手,需要一些帮助。我有一个下拉列表,其中填充了配置中的值。我将在点击提交到 运行 查询时使用此下拉菜单传递一个值,并将数据带回 table。
我需要帮助的地方:
如果用户想要将下拉菜单重置回 "Choose Your Value" 并清除 table 数据以准备 运行 新查询,我希望它们是能够单击 "Clear" 按钮并能够这样做。
我进行了很多搜索并了解了很多有关 JavaScript 执行此操作的方法,但我想使用 .NET 和 MVC。
这是我的下拉代码:
@{
ViewBag.Title = "Index";
}
@Html.DropDownList("YourElementName",
(IEnumerable<SelectListItem>)ViewBag.DropdownVals, "--Choose Your Value--",
new {
//size = "5",
style = "width: 600px"
}
我有一个这样的按钮:
<input id="Button2" type="button" value="Clear" />
按钮可以调用控制器中的一些代码来清除列表和 table 数据吗?
有空请详细说明。
非常感谢任何帮助。
现在的控制器:
public ActionResult Index()
{
//ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
string[] values = (ConfigurationManager.AppSettings["DropdownValues"]).Split(',').Select(sValue => sValue.Trim()).ToArray();
List<SelectListItem> dropDowns = new List<SelectListItem>();
for (int i = 0; i < values.Length; i++)
{
dropDowns.Add(new SelectListItem { Text = values[i], Value = values[i] });
}
ViewBag.DropdownVals = dropDowns;
return View();
}
执行此类操作的自然方法是使用客户端代码,您不需要服务器中的任何东西来执行此操作。
使用服务器端代码是一种过大的杀伤力,但简单的方法是重新加载同一页面(默认情况下下拉列表设置为没有选定项目)。
对于简单的 javascript 方式,并且不重新加载页面:
<input id="Button2" type="button" value="Clear" onclick="document.getElementById('YourElementID').value=''" />
您只需重新加载页面,即可将下拉菜单和页面设置为默认值。
<input id="Button2" type="button" value="Clear" onclick="window.location.reload()" />
同样,这也取决于您获取数据的方式。如果它是一个 Get
请求,在查询字符串中有 dropdown
值,那么这将不起作用。
你必须做的:
<input id="Button2" type="button" value="Clear" onclick="location.href='@Url.Action("Index", "ControllerName")'" />
您好,我是 MVC 新手,需要一些帮助。我有一个下拉列表,其中填充了配置中的值。我将在点击提交到 运行 查询时使用此下拉菜单传递一个值,并将数据带回 table。
我需要帮助的地方:
如果用户想要将下拉菜单重置回 "Choose Your Value" 并清除 table 数据以准备 运行 新查询,我希望它们是能够单击 "Clear" 按钮并能够这样做。
我进行了很多搜索并了解了很多有关 JavaScript 执行此操作的方法,但我想使用 .NET 和 MVC。
这是我的下拉代码:
@{
ViewBag.Title = "Index";
}
@Html.DropDownList("YourElementName",
(IEnumerable<SelectListItem>)ViewBag.DropdownVals, "--Choose Your Value--",
new {
//size = "5",
style = "width: 600px"
}
我有一个这样的按钮:
<input id="Button2" type="button" value="Clear" />
按钮可以调用控制器中的一些代码来清除列表和 table 数据吗?
有空请详细说明。
非常感谢任何帮助。
现在的控制器:
public ActionResult Index()
{
//ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
string[] values = (ConfigurationManager.AppSettings["DropdownValues"]).Split(',').Select(sValue => sValue.Trim()).ToArray();
List<SelectListItem> dropDowns = new List<SelectListItem>();
for (int i = 0; i < values.Length; i++)
{
dropDowns.Add(new SelectListItem { Text = values[i], Value = values[i] });
}
ViewBag.DropdownVals = dropDowns;
return View();
}
执行此类操作的自然方法是使用客户端代码,您不需要服务器中的任何东西来执行此操作。
使用服务器端代码是一种过大的杀伤力,但简单的方法是重新加载同一页面(默认情况下下拉列表设置为没有选定项目)。
对于简单的 javascript 方式,并且不重新加载页面:
<input id="Button2" type="button" value="Clear" onclick="document.getElementById('YourElementID').value=''" />
您只需重新加载页面,即可将下拉菜单和页面设置为默认值。
<input id="Button2" type="button" value="Clear" onclick="window.location.reload()" />
同样,这也取决于您获取数据的方式。如果它是一个 Get
请求,在查询字符串中有 dropdown
值,那么这将不起作用。
你必须做的:
<input id="Button2" type="button" value="Clear" onclick="location.href='@Url.Action("Index", "ControllerName")'" />