获取CheckBox以命令GridView行

时间:2016-07-04 12:33:45

标签: asp.net vb.net visual-studio gridview

我有0持有我的订单表(这些是插入语句中插入的值)。订单表显示在医生页面上,但我想添加它以便批准/取消批准(如果已选中,则将“批准”列更新为已批准,如果未选中,则更新“批准”列以不批准.I我需要在GridView添加CheckBox列。这是我学习的一部分(不是实时网站)。

如何向GridView添加一列复选框,以便在选中时设置要批准/未批准的行?

这是我的订单表 - (所有数据都是虚拟数据)

order table

网格:

GridView

在网格上显示数据

<asp:GridView ID="GridViewdoc" runat="server"  >
</asp:GridView>

我的select语句提取数据:

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        Dim conn As New System.Data.SqlClient.SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\surgerydb.mdf;Integrated Security=True;Connect Timeout=30")
        Dim cmd3string As String = " Select * From alltheview  WHERE DoctorId = " & Session("DoctorId")
        Dim dt As New System.Data.DataTable()
        Dim da As New System.Data.SqlClient.SqlDataAdapter(cmd3string, conn)
        conn.Open()
        da.Fill(dt)
        conn.Close()

        GridViewdoc.DataSource = dt
        GridViewdoc.DataBind()
    End If
End Sub

订单表现在看起来如何(顺便说一下,这是所有虚拟数据:

一个按钮。然后,click事件将提交选中的值 如果有人需要关于这个问题的更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

试试这个。它在C#中,但你应该能够很容易地计算出VB.Net。

顺便说一下,我会把你的代码用自己的方法加载你的数据。一旦批准更新,我建议重新加载网格视图。

ASPX:

<asp:GridView ID="GridViewdoc" DataKeyNames="OrderId" AutoGenerateColumns="false" runat="server">
            <Columns>
                <asp:BoundField HeaderText ="Order Id" DataField="OrderId" />
                <asp:BoundField HeaderText ="Patient Id" DataField="PatientId" />
                <asp:BoundField HeaderText ="Medicine Id" DataField="MedicineId" />
                <asp:BoundField HeaderText ="Pharmacy Id" DataField="PharmacyId" />
                <asp:BoundField HeaderText ="Doctor Id" DataField="DoctorId" />
                <asp:BoundField HeaderText ="Date Ordered" DataField="Dateordered" />
                <asp:TemplateField HeaderText="Approve/Unapprove">
                    <ItemTemplate>
                        <asp:CheckBox ID="chkApproved" AutoPostBack="true" Checked='<%# Eval("Approved") == null || Eval("Approved") == DBNull.Value ? false : Eval("Approved") %>' runat="server" OnCheckedChanged="chkApproved_CheckedChanged" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

代码背后:

protected void chkApproved_CheckedChanged(object sender, EventArgs e)
{
    CheckBox chkApproved = (CheckBox)sender;
    GridViewRow gridViewRow = (GridViewRow)chkApproved.Parent.Parent;
    int orderID = (int)GridViewdoc.DataKeys[gridViewRow.RowIndex].Value;
    bool approved = chkApproved.Checked;

    //Your update method
    UpdateApproved(orderID, approved);
    //Your data load method
    LoadData();
}