将复选框添加到gridview

时间:2013-11-09 10:15:04

标签: c# asp.net

我有一个包含三列的网格视图员工姓名员工详细信息和员工年龄。 我想在每一行添加一个复选框,在选中每个复选框后,我想触发与该员工关联的插入查询。 你能告诉我如何将这个动态功能添加到网格视图。

如果我们使用<%# EVAL %>,我也不知道如何使用复选框实现它。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:0)

您可以将GridField用于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")