Razorview 및 Entity Framework를 사용하고 있으며 다음을 달성하려고합니다. 열 이름 목록이있는 드롭 다운 (id = ColumnName)이 있습니다. 테이블에서 값을 검색하기위한 텍스트 상자 (id = SearchValue). 버튼을 클릭 할 때 데이터베이스에서 관련 데이터를 검색하고 있습니다 (열 이름이 'ColumnName'이고 값이 'SearchValue'인 레코드). 이것은 잘 작동하지만 관련 데이터를 다시 얻으면 'SearchValue'와 'ColumnName'이 선택되지 않습니다. 내가 선택한 값을 저장하고 테이블에 관련 데이터를 가져 오는 방법을 모르겠습니다. 다음과 같이 내 코드는 다음과 같습니다개별 열 검색을 기반으로 테이블을 표시하십시오. 검색 필드 및 값 유지
HTML :
<select id='mySelector' name="ColumnName">
<option value="">Please Select</option>
<option value='Country'>Country</option>
<option value='Title'>Title</option>
<option value='State'>State</option>
</select>
<input type="text" id="cs" name="SearchValue">
<input type="button" value="Search" onclick="location.href='@Url.Action("FilterByColumn", "CountryController")?SearchValue=' + document.getElementById('cs').value + '&ColumnName=' +document.getElementById('mySelector').value" />
<table id='myTable'>
// values
</table>
CountryController :
public ActionResult FilterByColumn(String ColumnName, String SearchValue)
{
if (!String.IsNullOrEmpty(SearchValue))
{
List<Country> result = new List<Country>();
result = db.Countries.ToList();
result = db.Countries.Where(ColumnName + ".Contains" + "(\"" + SearchValue.ToLower() + "\")").ToList();
return View(result);
}
return RedirectToAction("Index");
}
참고 :이 컨트롤러를 작성, 편집 등의 다른 방법을 가지고있다.
내가 그것을 할 방법은 내가 다시 ViewBag와 뷰 되었 있도록 다음 숨겨진 필드에 검색 값을 삽입하기 위해 사용 JQuery와입니다. 이렇게하면 나중에 데이터베이스에 노출 될 수있는 정보가 URL에서 제외됩니다. – Danimal
또한 ajax를 사용하여 새로 고칠 데이터 만 새로 고쳐 모든 이전 페이지 데이터를 유지할 수 있습니다. – Danimal
@Danimal : 예를 들어 설명해 주시겠습니까? – user7221204