asp.net 如何用按钮控制table的显示和隐藏
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net 如何用按钮控制table的显示和隐藏相关的知识,希望对你有一定的参考价值。
楼上二位一个懒得把label改成table,另一个直接把叫楼主把table当成asp.net控件用,你不知道得告诉楼主先把table加上把runat="server"啊。方法:
1.把table放到一个ID为p1的panel控件里
2.在按钮的事件中先判断p1当前的visible属性,并进行操作,代码为:
this.p1.Visible = (this.p1.Visible == true) ? false : true 参考技术A 假设有一个button控件的事件为button_click,table的id为table在事件中table1.visible=false隐藏
table1.visible=true为显示 参考技术B 假设有一个button控件的事件为button_click,label的id为label1
在事件中label1.visible=false隐藏
label1.visible=true为显示 参考技术C 前台他们说了 后台的
public void btn1_OnClick()
table1.Attribute.Add("style","display:none");
ASP.NET MVC 如何用单一视图处理不同的动作逻辑?
【中文标题】ASP.NET MVC 如何用单一视图处理不同的动作逻辑?【英文标题】:ASP.NET MVC How to handle different action logic with single view? 【发布时间】:2017-01-03 12:44:30 【问题描述】:好的,这是我喜欢讨论的问题。我们有如下路线:
.../browse
.../brand/audi/a4
.../category/tail-lights-17
.../search?t=fog+lamp
我目前的解决方案是为这些路线编写不同的操作和视图。所有视图都列出了带有部分视图的产品,但存在一些差异,例如过滤或汽车选择(我想我可以用另一个部分视图再次处理这个问题)
@if(Model.ShowCarSelection)
@Html.Partial("_CarSelection")
我想知道您如何处理这样的情况。例如这样的事情:
[HttpGet, Route("browse"), Route("/make/model"), Route("categorySlug")]
public ActionResult List(string make, string model, string categorySlug, int page = 1, string sort, string filter)
var listVM = new ListVM();
if(!string.IsNullOrEmpty(categorySlug))
listVM.Products = productService.GetByCategorySlug(categorySlug);
else if (!string.IsNullOrEmpty(make))
listVM.Products = productService.GetByMakeAndModel(make, model);
// other things like filtering, sorting, preparing car selection partial view model etc.
return View();
但这将是一个非常长的动作,我会让我感到难过(坏)。
有遇到过类似情况的可以给我指路吗?
【问题讨论】:
【参考方案1】:创建一个模型并将其传递给您的视图,您的视图会将其发送回您的控制器。
public class SearchCriteria
public string Name get; set;
public string Model get; set;
public string CategorySlug get; set;
public int Page get; set;
public string Sort get; set;
public string Filter get; set;
还有你的控制器:
public ActionResult List(SearchCriteria searchCriteria)
// Let your service make the decision based on searchCriteria
productService.Get(searchCriteria);
// rest of your code
最好这样做,这样您也可以将该模型用于其他搜索:
public abstract class SearchCriteria
public int Page get; set;
public string Sort get; set;
public string Filter get; set;
public class CarSearchCriteria : SearchCriteria
public string Name get; set;
public string Model get; set;
public string CategorySlug get; set;
编辑
在评论中,OP 提出以下问题:
我可以将 url 段绑定到视图模型吗?
为了澄清问题:如果查询字符串中有项目并且操作方法需要复杂类型,它会从查询字符串中提取项目并以某种方式创建操作所期望的模型吗?
是的。当DefaultModelBinder
类遇到一个以复杂类型为参数的动作方法时,它会使用反射来获取复杂类型的公共属性。然后它将使用每个属性的名称并按以下顺序在以下位置查找匹配项。想象一下它正在寻找属性名称“id”:
Request.Form[]
数组,即Request.Form["id"]
RouteData.Values[]
数组,即RouteData.Values["id"]
Request.QueryString[]
数组,即Request.QueryString["id"]
Request.Files[]
数组,即Request.Files["id"]
一旦找到匹配项,它将使用该值并且不再进行搜索。因此,如果您的表单具有“id”并且查询字符串具有“id”,它将使用您表单中的那个。它将搜索这些位置的每个属性。如果你的模型有一个复杂的属性,那么它也会做同样的事情。
【讨论】:
这看起来很适合过滤或搜索表单,我可以使用SearchCriteria
模型发出 POST 请求,但是我将如何生成和处理类别菜单链接或特定的品牌/模型链接?我可以将 url 段绑定到视图模型吗?以上是关于asp.net 如何用按钮控制table的显示和隐藏的主要内容,如果未能解决你的问题,请参考以下文章
在VS2013 ASP.NET中如何用BulletedList连接SQL数据库