2013-10-10 1 views
-2

저는 데이터베이스에서 파일 이름 목록을 출력하는 함수에 있습니다. 나는 이것을 데이터베이스에서 가져 와서 DataTable에 저장합니다. DataTable은 페이지에 표시하는 DataGrid에 목록을 제공합니다. 그건 잘 작동합니다.ASP.NET C# Datatable으로 Checkboxex를 연결하십시오.

내 문제는 각각의 파일 이름 옆에 체크 표시가있는 오른쪽에 체크 표시를하고 다음에 양식을 저장할 때 데이터베이스 항목이 삭제된다는 것입니다.

어떻게하면 프로그램이 동적으로 확인란을 DataTable에 표시하고 체크 박스에 항목이 있는지 알 수 있습니까?

안부 마이클 Ryter

+1

http://blog.stackoverflow.com/2009/07/non-english-question-policy/ 가능한지 ** 영어 **로 질문하십시오. –

답변

0
<asp:TemplateField HeaderText="name" SortExpression="Name"> 

         <ItemTemplate> 
         <asp:Checkbox id="chkIsDeletable" runat="server" /> 
<asp:HiddenField id="hndFileId" runat="server" Value='<%#Eval("FileID")%>' /> 
         </ItemTemplate> 
         </asp:TemplateField> 

    <asp:TemplateField HeaderText="name" SortExpression="Name"> 

         <ItemTemplate> 
         <%#Eval("filename") %> 
         </ItemTemplate> 
         </asp:TemplateField> 

이제 버튼 클릭 이벤트에 :

protected void Button_Click(object sender, EventArgs e) 
    { 

String SelectedFileIds =""; 
     foreach (GridViewRow item in GridView1.Rows) 
     { 
      CheckBox chkIsDeletable = item.FindControl("chkIsDeletable") as CheckBox; 
      HiddenField hndFileId = item.FindControl("hndFileId") as HiddenField; 
      if (chkIsDeletable.Checked) 
       SelectedFileIds = hndFileId.Value + ","; 
     } 
     SelectedFileIds = SelectedFileIds.TrimEnd(","); 

} 

이제 checbox에 체크 한 모든 파일 아이디가 표시됩니다. 이제 선택한 파일 아이디가있는 데이터베이스에서 해당 레코드를 삭제할 수 있습니다.

희망, 도움이 될 것입니다 !!!

관련 문제