2012-03-09 11 views
1

모든 체크 박스를 반복하여 체크하고 값을 얻고 체크하거나 체크하지 않으면 레코드의 ID를 포함 할 Value에 따라 체크/체크하지 않은 것을 데이터베이스에 저장하려고합니다. 나는 asp.net 어떤 제안을 통해 이것을하려고합니까? 온 클릭 이벤트에서GridView를 통한 루프 체크 박스

  <Columns> 
       <asp:TemplateField HeaderText="Application" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <%#Eval("App")%> 
        </ItemTemplate>      
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Edit" ItemStyle-Width="25%"> 
        <ItemTemplate> 
         <input name="chkEdit" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("Edit") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Delete" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <input name="chkDelete" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("Delete") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="View" ItemStyle-Width="25%"> 
        <ItemTemplate>       
         <input name="chkView" runat="server" value='<%# Eval("AppID") %>' class="checkbox" type="checkbox" checked='<%# Eval("View") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
+0

@DeviantSeev 나는 체크 박스 컨트롤을 통해 반복하려하지만, 작동하지 않았다. 나는 asp.net에서 모든 값을 얻는 방법이 있는지 확인하고 싶습니다. 자바 스크립트 이외의 체크/체크하지 않았습니다. –

+0

사용자가 "저장"버튼을 클릭하면 모든 체크 박스를 거쳐 현재 상태를 테이블에 저장해야합니다. –

답변

2
string[] controls = new string[] {"chkEdit","chkDelete","chkView"}; 

foreach (GridViewRow r in YourGridView.Rows) 
{ 
    foreach(string cnt in controls){ 
    int value = Convert.ToInt32(((System.Web.UI.HtmlControls.HtmlInputCheckBox)r.FindControl(cnt)).Value); 
    bool isChecked = ((System.Web.UI.HtmlControls.HtmlInputCheckBox)r.FindControl(cnt)).Checked; 
    //now you have id and checked/unchecked. use your query to save it to database 
    } 
} 
+0

답장을 보내 주셔서 감사합니다. 하드 코딩보다 체크 박스를 동적으로 가져 오는 방법이 있습니까? Html 체크 박스를 반복하여 FindControl에 할당 할 수 있습니까? –

+0

귀하의 요구 사항에 맞게 편집되었습니다. – Kaf

+0

아이디어를 주셔서 감사합니다 :) –

2

이 같은 것을 할 : 여기

는 코드입니다. 또한 내가 확인란을 모두 얻을 수있는 것이 아니라 asp.net의 모든 일을 할 것 인 자바 스크립트를 사용하여 시도 ...

foreach(Gridviewrow gvr in Gridview1.Rows) 
{ 
    if(((CheckBox)gvr.findcontrol("CheckBox1")).Checked == true) 
    { 

     //do something 
    } 
} 
+0

안녕하세요. 회신 해 주셔서 감사합니다. 나는 이미 이런 식으로 돔을 가지고 있지만 체크 박스 뒤에는 데이터베이스 ID의 값이있다. 어떻게하면 제어 할 수 있는가? value = '<% # Eval ("AppID") %>' –

+0

또한 동적으로 찾는 방법이있다. 하드 코딩 확인란 이름보다는 컨트롤? –

+0

HTML 입력 태그 값은 다음과 같이 검색 할 수 있습니다. request.form ('checkboxID'). 내가 html 태그를 사용하고 asp.net 체크 박스를 사용하지 않는 이유를 물어볼 수 있습니까? – AJP

관련 문제