에서 발생하지 않습니다GRIDVIEW 정렬 내가 내 코드에서 두 개의 컨트롤 다음 한 첫 번째 클릭
있는 gridview 의 SqlDataSource (내있는 gridview의 소스) (데이터 표시)
내가있는 gridview를 변경하려면, 하지만 내 sqldatasource에서 sqlcommandstring을 변경할 때, 내 DataGrid 테이블 정렬의 새로운 뷰에서 첫 번째 클릭에 대해 실행되지 않습니다. sqlcommandstring 변경 프로세스는 아래를 참조하십시오.
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (IsPostBack)
{ // Restore saved sqlcommand in page refresh, please see below
SqlDataSource1.SelectCommand = ViewState["MySQL"].ToString();
}
}
catch (Exception ex){}
}
protected void btn_SearchLibrary_Click(object sender, EventArgs e)
{
SqlDataSource1.SelectCommand = "SELECT * FROM Books WHERE id=1 OR id=2";
ViewState["MySQL"] = "SELECT * FROM Books WHERE id=1 OR id=2";
//Saves sqlcommand in viewstate, to restore it in page refresh.
}
이해하려고했지만 명확하게 얻을 수 없었습니다. 클릭 이벤트 처리기에 databind를 추가했으나 작동하지 않았습니다. – HOY
내 대답이 기초가 아니기 때문에 일부 설명을 요청해야합니다. 저를위한 전형적인 사용법을 통해 갈 수 있습니까? 그것은 다음과 같습니다 : 처음으로 그리드가 비어있는 페이지가로드됩니다; 사용자가 SearchLibrary 버튼을 클릭하고 그리드가 채워집니다. 사용자가 열 머리글을 클릭하여 표를 정렬하지만 첫 번째 클릭이 처리되지 않습니다. 모든 후속 클릭이 올바르게 처리되고 정렬됩니다. 정확하니? –
이것은 프로세스 : 페이지가 처음으로로드되는 방식입니다 (내 SqlDataSource1 -> Sqlcommandstring = SELECT *가 책에 포함되어 있기 때문에) 내부에 3 개의 요소가 있습니다. 또한 btn_SearchLibrary_Click 위의 클릭과 grid가 검색된 후 sort가 작동합니다. 2 개의 요소가 있으면 정렬이 잘되지 않습니다. (추신 : 나는 그것을 사용하지 않으면 그리드 뷰가 다시 3 개의 요소를 클릭 할 때마다 3 개의 요소로 돌아 가기 때문에 명령 문자열을 항상 동일하게 유지하기 위해 View 상태를 사용했습니다.) – HOY