2014-09-18 5 views
0

У меня есть следующий кодCheckBox в GridView получить значение

HTML:

  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> 
       <Columns> 
        <asp:TemplateField HeaderText="Checkbox"> 
         <ItemTemplate> 
          <asp:CheckBox ID="chkb" runat="server" /> 
         </ItemTemplate> 
        </asp:TemplateField> 

        <asp:TemplateField HeaderText="ID" Visible="false"> 
         <ItemTemplate> 
          <asp:Label ID="lblId" runat="server" Text='<%# Eval("Id")%>'>'></asp:Label> 
         </ItemTemplate> 
        </asp:TemplateField> 

        <asp:TemplateField HeaderText="Name"> 
         <ItemTemplate> 
          <asp:Label ID="lblName" runat="server" Text='<%# Eval("Name")%>'>'></asp:Label> 
         </ItemTemplate> 
        </asp:TemplateField> 

        <asp:TemplateField HeaderText="Country"> 
         <ItemTemplate> 
          <asp:Label ID="lblCountry" runat="server" Text='<%# Eval("Country")%>'>'></asp:Label> 
         </ItemTemplate> 
        </asp:TemplateField> 

       </Columns> 
      </asp:GridView> 

код позади:

Protected Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click 
     Debug.WriteLine("Clicked") 
     For Each row As GridViewRow In GridView1.Rows 
      Dim chk As CheckBox = row.FindControl("chkb") 
      If chk.Checked Then 
       Dim lbl As Label = row.FindControl("lblId") 
       Debug.WriteLine(chk.Checked) 
       Debug.WriteLine(lbl.Text) 
      End If 
     Next 
    End Sub 

Есть ли что-то неправильно вокруг секции CheckBox? потому что я могу получить вывод «Клики», но не могу показаться, чтобы получить выход для

Debug.WriteLine(chk.Checked) 
Debug.WriteLine(lbl.Text) 

Кроме того, я не могу получить значение ли chk.Checked, когда я отладку.

+0

@Amignos Убедитесь Postback –

+0

@Thirisangu Что такое постбэк и как? извините, я новичок в vb.net –

+0

@Amignos IF Not IsPostBack Then GridBind() // ваш метод привязать вид сетки Завершить IF –

ответ

1

Попробуйте это:

If Not Page.IsPostBack Then 
GridView1.DataSourceID = dataTable 
GridView1.DataBind() 
End If 
+0

, но я использую таблицу данных для представления сетки –

+0

@Amigos Gridview1. DataSourceID = dataTable –

+0

Я поставил ваши заявления на загрузку страницы, и теперь он отлично работает. –