홈>
나는 MVC를 처음 접했고 어떤 도움이라도 대단히 감사하겠습니다. 현재 데이터 테이블을 표시하는 페이지가 있습니다. 클릭하면 페이지에 추가 필터를 추가하는 버튼을 추가하고 싶습니다. 다시 클릭하면 필터가 해제됩니다 (전환 기능).
아래는 내가 사용하려는 코드의 미리보기입니다. 뷰가 원하는대로 작동한다고 생각하지만 컨트롤러에 대해서는 잘 모르겠습니다.
보기 버튼 :
<td width="15%">
@if (ViewBag.curStatus == "NotFiltered")
{
@Html.ActionLink("Filter", "Index", new
{
sortOrder = ViewBag.CurrentSort,
qryStatus = ""
}, new { @class = "btn btn-primary btn-xs" })
}
else
{
@Html.ActionLink("Filter", "Index", new
{
sortOrder = ViewBag.CurrentSort,
qryStatus = "Filtered"
}, new { @class = "btn btn-default btn-xs" })
}
</td>
컨트롤러 :
public ActionResult Table(string sortOrder, string currentFilter, string searchString, int? page)
{
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ?
"invlocation" : "";
ViewBag.curStatus = String.IsNullOrEmpty(sortOrder) ?
"NotFiltered" : "Filtered";
var samples = from s in db.Table1
select s;
switch (sortOrder)
{
case "NotFiltered":
string selectqry = "select * from Table1 where datereceived is null ";
selectqry = selectqry + " and submissionid not in (select id from Table2 where status='Done')";
break;
case "Filtered":
selectqry = selectqry + " and status <> 'Pending'";
break;
}
List<vFiltered> list = db.Table1.SqlQuery(selectqry).ToList();
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(vFiltered.ToPagedList(pageNumber, pageSize));
}
- 답변 # 1
관련 자료
- html - 자바 스크립트 토글 버튼이 버튼 상태를 변경하지 않음
- javascript - 토글 버튼으로 Jquery Resize Div
- vba - 문서를 열 때 누른 리본 전환 버튼을 처음 전환 할 때 어떻게 올바르게 작동합니까?
- javascript - React로 토글 버튼을 어떻게 구현합니까?
- excel - InputBox 취소 버튼 종료 하위 문제
- javascript - 버튼으로 부울 변수를 전환하려고합니다
- jquery - 하나의 버튼을 사용하여 IMG 제거 및 추가를 전환하는 방법은 무엇입니까?
- javascript - 값이 true이지만 전환 버튼이 꺼져있는 상태입니다
- javascript - 목록보기에서 일부 필드의 값을 변경하기 위해 토글 버튼과 같은 동작을 추가하는 방법은 무엇입니까?
- javascript - JS for Toggle Button 관련 오류가 나타납니다
- angularjs - angularjs - ngtable :컨트롤러의 동적 필터 문제
- javascript - JSON 콘텐츠에 대한 필터를 만드는 데 문제가 있습니까?
- html - 다른 페이지에서 아코디언 버튼을 전환하는 방법
- React Native의 필터 버튼
- css - 반응에서 버튼을 클릭하면 여러 버튼 스타일 간 전환
- javascript - 버튼 클릭시 요소 간 전환 AngularJS
- keyboard - 버튼으로 키 바인딩을 전환하는 방법
- javascript - 토글 버튼 onClick 메서드가 작동하지 않습니다
- angular - facebook 공유 버튼 문제 - "첨부 파일을 찾을 수 없음 : 첨부 파일을 찾을 수 없습니다"
- list - 키보드의 "검색"버튼을 클릭 한 후에 만 필터링하는 방법
관련 질문
- c# : html 테이블에 부분보기를 추가하는 방법
- c# : 데이터베이스를 테스트 데이터로 채울 때 예외가 발생하는 이유 (EF Core)
- c# : 반환하기 전에 모델에 데이터를 추가하면 ASP.NET Core Web API가 중단됨
- c# : Html을 일반 텍스트로 어떻게 변환합니까?
- c# : 누구든지 html로 datatable의 데이터를 표시하는 방법을 알려줄 수 있습니까?
- c# : ASP.NET 5 MVC의 부분보기에서 @Model을 변경하는 방법
- c# : Ajax 유형으로 모델을 보내는 방법은 무엇입니까?
- c# MVC "개체 참조가 개체의 인스턴스로 설정되지 않음"그러나 UserId에는 값이 있습니다.
- c# : MVC 4를 사용하여 대용량 파일을 업로드하는 방법은 무엇입니까?
- c# 애플리케이션을 사용하여 라우터에 로그인하는 방법
내가 언급 한 첫 번째 것은 MVC 패턴이 약간 느슨하고 컨트롤러에 내가 선택하는 것보다 훨씬 많은 코드가 있다는 것입니다.
내 선호와 IMO의 더 나은 접근 방식은 로직을 비즈니스 계층 또는 저장소로 옮기는 것입니다.
저장소/쿼리 :
항상 발생하므로 if/case 문 외부에 있어야합니다.
Entity Framework를 사용하지 않고 수동으로 쿼리를 작성하려는 경우 다음을 수행 할 수 있습니다.
약간 더 깨끗하게 :
그리고 :
왜 정렬 순서라는 필터가 있습니까?
여전히 SQL 문자열을 완전히 버리고 dbContext (Entity Framework 가정)를 설정하고 다음과 같이하십시오 :