GridView
에 표시되는 로컬 DB 테이블이 있습니다. 이 표에는 'Completed'라는 열이 있습니다.ASP.NET 데이터 소스 선택 명령
테이블을 처음 표시 할 때 완료된 레코드없이 표시됩니다 (완료 됨 = false).
"SELECT * FROM [CERecord] WHERE [Completed]='false' ORDER BY [Priority]";
내가 포스트 백을 유발하는 체크 박스가 : 여기 SqlDataSource
선택 명령입니다. 나는 그것을 unticking/똑딱에 의해 완성 된 기록의 표시를 전환 할 : 나는 상자를 검사 할 때
protected void cbShowCompletedRecords_CheckedChanged(object sender, EventArgs e)
{
if (cbShowCompletedRecords.Checked)
CEDatabaseSource.SelectCommand = "SELECT * FROM [CERecord] ORDER BY [Priority]";
else
{
CEDatabaseSource.SelectCommand = "SELECT * FROM [CERecord] WHERE [Completed]='false' ORDER BY [Priority]";
}
}
는 현재, 나는 모든 기록을 얻을. 그러나 위의 코드를 실행하더라도 선택을 취소하면 GridView
이 업데이트되지 않습니다. 내가 누락 된 것? 당신의 체크 박스의 "검사"속성에 따라
<asp:SqlDataSource ID="myds" runat="server"
SelectCommand="SELECT * FROM [CERecord] WHERE [Completed]=:COMPLETED ORDER BY [Priority]">
<SelectParameters>
<asp:ControlParameter ControlID="MyCheckbox" Name="COMPLETED" PropertyName="Checked" Type="Boolean" />
</SelectParameters>
</asp:SqlDataSource>
이것은 당신의 선택 명령을 수정합니다 :
'if..else' 블록 다음에'Rebind' 메소드를 사용해보십시오. 'Grid.Rebind()' – Ron
DB에서 어떤 타입이 완성 되었습니까? 부울 또는 문자열? –
@Ron 당신은'DataBind();'를 의미합니까? – jadarnel27