2013-11-09 3 views
0

У меня есть вид сетки с тремя столбцами Имя сотрудника Сведения о сотрудниках и возраст сотрудника. Я хочу добавить флажок в каждую строку, и после выбора каждого флажка я хочу запустить запрос вставки, связанный с этим сотрудником. Можете ли вы рассказать, как добавить эту динамическую функциональность в сетку.Добавить флажок в gridview

также если мы используем <%# EVAL %> Я не знаю, как его реализовать с помощью флажка.

ответ

0

Вот пример,

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
BackColor="White" BorderColor="#336699" BorderStyle="Solid" BorderWidth="1px" 
CellPadding="0" CellSpacing="0" DataKeyNames="CategoryID" Font-Size="10" 
Font-Names="Arial" GridLines="Vertical" Width="40%"> 

     <Columns>    
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:CheckBox ID="chkStatus" runat="server" 
         AutoPostBack="true" OnCheckedChanged="chkStatus_OnCheckedChanged" 
         Checked='<%# Convert.ToBoolean(Eval("Approved")) %>' 
         Text='<%# Eval("Approved").ToString().Equals("True") ? " Approved " : " Not Approved " %>' /> 
       </ItemTemplate>     
      </asp:TemplateField> 

      <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" />     
      <asp:BoundField DataField="CategoryName" HeaderText="CategoryName" /> 
     </Columns> 

<HeaderStyle BackColor="#336699" ForeColor="White" Height="20" /> 

Для получения дополнительной информации обратитесь Here!

1

ASPX:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
      DataSourceID="SqlDataSource1"> 
      <Columns> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:CheckBox ID="CheckBox1" runat="server" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" /> 
       <asp:BoundField DataField="details" HeaderText="details" 
        SortExpression="details" /> 
       <asp:BoundField DataField="age" HeaderText="age" SortExpression="age" /> 
      </Columns> 
     </asp:GridView> 
     <br /> 
     <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="OK" /> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="<%$ ConnectionStrings:connApps %>" 
      SelectCommand="SELECT [name], [details], [age] FROM [tblA]"> 
     </asp:SqlDataSource> 
     <br /> 
     <asp:Label ID="Label1" runat="server"></asp:Label> 

код позади:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Label1.Text = "Selected item name:<br>"; 
    foreach (GridViewRow item in GridView1.Rows) 
    { 
     CheckBox chk = (CheckBox)item.FindControl("CheckBox1"); 
     if (chk != null) 
     { 
      if (chk.Checked) 
      { 
       Label1.Text += item.Cells[1].Text + "<br>"; 
      } 
     } 
    } 
} 

Выход:

enter image description here

0

вы можете использовать TemplateFields для GridView:

<asp:GridView ID="GridView1" runat="server"> 
<Columns> 
<asp:TemplateField > 
<ItemTemplate> 
<asp:CheckBox ID="myCheckBox" runat="server" /> 
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 

и в коде позади использования ниже код:

ClusterName = GV.Rows(1).Cells(2).FindControl("myLabelinTheGridViewTemplateField") 
Смежные вопросы