2014-03-13 5 views
0

나는 Checkbox controlGridView이 내가 선택한 확인란을하고 싶지만 내가 For Each Loop를 사용하여 Gridview을 반복하려고 할 때 검색되는 데이터가 중복됩니다. 나는 그것을 고치는 법을 정말로 모른다. 나는 이것에 google 동일한 문제 또는 접근을 가지고 있고 나가 동일한 코드를 얻었 는가 그래서 나는 무엇에 여기에서 없는가?제대로

For Each row As GridViewRow In GridView1.Rows 
     If row.RowType = DataControlRowType.DataRow Then 
      Dim chkRow As CheckBox = TryCast(row.Cells(0).FindControl("chkRow"), CheckBox) 
      If chkRow.Checked Then 
       Dim name As String = row.Cells(1).Text 
       Response.Write(name) 
      End If 
     End If 
    Next 

여기 내 aspx 코드 : 여기에 내 코드 당신이 다시 게시에있는 gridview를 리 바인드하는 것처럼 정보를 감안할 때

<asp:GridView ID="GridView1" CssClass="table table-bordered" runat="server" 
      CellPadding="4" ForeColor="#333333" 
      GridLines="None" Width="100%" DataKeyNames="ID" 
      AutoGenerateColumns="False"> 
      <AlternatingRowStyle BackColor="White" /> 
      <Columns> 

       <asp:TemplateField HeaderText="Select"> 
        <ItemTemplate> 
         <asp:CheckBox ID="chkRow" runat="server" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="ID" HeaderText="ID" /> 
       <asp:BoundField DataField="Laboratory Name" HeaderText="Laboratory Name" /> 
       <asp:BoundField DataField="Description" HeaderText="Description" /> 
       <asp:BoundField DataField="Price" HeaderText="Price" /> 
      </Columns> 
      <EditRowStyle BackColor="#2461BF" /> 
      <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
      <RowStyle BackColor="#EFF3FB" /> 
      <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
      <SortedAscendingCellStyle BackColor="#F5F7FB" /> 
      <SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
      <SortedDescendingCellStyle BackColor="#E9EBEF" /> 
      <SortedDescendingHeaderStyle BackColor="#4870BE" /> 
     </asp:GridView> 

답변

0

들린다.

데이터 바인딩중인 코드에 다시 게시 체크를하십시오.

If Not IsPostBack() Then Me.GridView1.DataBind() End If

+0

은 어디에서 그 선생님을 찾아해야이 반드시 문제가 해결됩니다

If Not IsPostBack() Then GridView1.DataBind() <if your you are populating data through class just add it> or populate(param1, param2,...) End If 

를 사용할 수 있습니까? Page_Load? – user3093453

+0

Gridview의 데이터 소스 란 무엇입니까? 코드 숨김으로 설정하고 있습니까? 그렇다면 Me.Gridview1.DataBind()가 위 예제에있는이 메서드를 호출해야합니다. – angusf

0

당신의 페이지로드에 그리드를 작성하는 경우 다음