2017-09-06 69 views
0

嗨,我需要一些帮助,因为我是MVC的新手。我有一个下拉列表,正在填充来自配置的值。在打开提交以运行查询并将数据带回表中时,我将使用此下拉列表传递值。重置一个@ HTML.DropDownList&表按钮点击没有JavaScript或JQuery

当我需要帮助:

如果用户希望将下降重置下来回“选择你的价值”,并清除数据的表在准备运行一个新的查询,我想他们是能够点击“清除”按钮并能够这样做。

我搜索了很多,并了解了很多关于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" /> 

按钮可以调用控制器一些代码,会清除名单和表格数据?

请详细解释是否有时间。

任何帮助,非常感谢。

控制器,因为它是现在:

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(); 
    } 
+0

能后加载的页面和您提交并获得数据的方法控制方法? – adiga

+0

我的意思是不想使用'jquery'是可以理解的,但为什么你不想使用JavaScript?对于清除,你必须做一个页面刷新 – adiga

+0

@adiga我用控制器代码更新了问题。我不介意Javascript,但是我看到的每一个例子都必须经过努力才能获得最终结果。我只想要简单的东西,找不到任何东西。 – Abdul

回答

2

您只需重新加载页面,将设置的下拉菜单和默认的页面。

<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")'" /> 
+0

这是如何回答这个问题 - OP已经特别声明_without JavaScript或JQuery_('onclick' ** IS ** javascript) –

+0

@StephenMuecke我的一个评论说我不介意Javascript,但不想让事情变得复杂。 – Abdul

+0

@Abdul,这不是你问题所说的(我们回答问题,而不是评论)。如果你打算使用javascript,那么使用[Unobtrusive Javascript](https://en.wikipedia.org/wiki/Unobtrusive_JavaScript) - 我们现在处于21世纪:) - '$(yourButton).click(function (){...' –

1

自然的方式做这样的事情正在使用的客户端代码,你并不需要的东西在服务器做到这一点。

使用服务器端代码是一个矫枉过正的问题,但最简单的方法是重新加载相同的页面(默认情况下没有选定项目的情况下设置下拉列表)。

对于一个简单的JavaScript的方式,而不是重新加载页面:

<input id="Button2" type="button" value="Clear" onclick="document.getElementById('YourElementID').value=''" /> 
+0

但他不会清理桌子。 – adiga

+0

你是对的,没有注意到显示的东西。 – Romias