gpt4 book ai didi

asp.net - 如何在 GridView 上过滤数据/连接

转载 作者:行者123 更新时间:2023-12-02 03:13:25 24 4
gpt4 key购买 nike

我正在制作一个订购网站作为作业的一部分。医生登录并查看他的病人提出的所有命令。当医生单击某些复选框并单击按钮时 - 选中的框会将订单(行)列(批准)更新为已批准。未选中的框将批准列更新为不批准 - 这一切都有效并更新......

但是此后网格不会消失 - 医生可以继续更新订单并更改它们,但我只希望出现尚未选中/未选中的新订单。 - 我不知道如何将它应用到我的 vb 代码中。

我不想从数据库订单表中删除订单 - 只需将尚未检查/未检查的新订单呈现给医生。

我的腰带:

    <asp:GridView ID="GridViewdoc" runat="server" AutoGenerateColumns="False" DataKeyNames="OrderId">
<Columns>
<asp:BoundField DataField="OrderID" HeaderText="Order Id" />
<asp:BoundField DataField="DoctorId" HeaderText="Doctor Id" />
<asp:BoundField DataField="Forename" HeaderText="Forename" />
<asp:BoundField DataField="Surname" HeaderText="Surname" />
<asp:BoundField DataField="MedicineId" HeaderText="Medicine Id" />
<asp:BoundField DataField="MedicineName" HeaderText="Medicine Name" />
<asp:BoundField DataField="pharmname" HeaderText="Pharmacy Name" />
<asp:BoundField DataField="Dateordered" HeaderText="Date Ordered" />
<asp:TemplateField HeaderText="Approve Status">
<ItemTemplate>
<asp:CheckBox ID="ApproveBox" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

gid 背后的代码:

Imports System.Data.SqlClient

导入系统数据

部分类页面_docorders 继承System.Web.UI.Page

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 docgridview 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

Protected Sub GridViewdoc_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridViewdoc.RowDataBound


If e.Row.RowType = DataControlRowType.DataRow Then
Dim drview As DataRowView = TryCast(e.Row.DataItem, DataRowView)

'Find checkbox and checked/Unchecked based on values
Dim chkb As CheckBox = DirectCast(e.Row.FindControl("ApproveBox"), CheckBox)
If drview(8).ToString() = "Approve" Then
chkb.Checked = True
Else
End If
End If

End Sub
Protected Sub btnapprove_Click(sender As Object, e As System.EventArgs) Handles btnapprove.Click
Dim dt As Data.DataTable = Session("Approved")
Dim val As String
val = ""
Dim Oid As Integer
Dim conn As New System.Data.SqlClient.SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\surgerydb.mdf;Integrated Security=True;Connect Timeout=30")

For Each row As GridViewRow In GridViewdoc.Rows
Dim therowindex As Integer = row.RowIndex
Oid = Integer.Parse(GridViewdoc.DataKeys(therowindex).Value.ToString())
val = ""
Dim cb As CheckBox = row.FindControl("ApproveBox")
If cb.Checked Then

val = "Approved"
Else

val = "Disapproved"
End If
If Oid > 0 Then
Dim cmdstring As String = " UPDATE Order_pres SET Approved = @appr Where OrderID= @oid"
conn.Close()
conn.Open()
Dim cmd = New SqlCommand(cmdstring, conn)
cmd.Parameters.Add("@appr", Data.SqlDbType.NVarChar).Value = val
cmd.Parameters.Add("@oid", Data.SqlDbType.NVarChar).Value = Oid
Dim result As Integer
result = cmd.ExecuteNonQuery()

End If
Next

Dim cmd3string As String = " Select * From docgridview WHERE DoctorId = " & Session("DoctorId")
Dim dtm As New System.Data.DataTable()
Dim da As New System.Data.SqlClient.SqlDataAdapter(cmd3string, conn)
conn.Close()
conn.Open()
da.Fill(dtm)
conn.Close()
GridViewdoc.DataSource = dtm
GridViewdoc.DataBind()
End Sub

下课

希望有人能提供帮助 - 谢谢 :)

最佳答案

如果 Order_pres 中的 Approved 字段为 NULL,只要尚未做出关于订单批准的决定,您可以尝试以下操作:

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
BindGridViewData()
End If
End Sub

Protected Sub btnapprove_Click(sender As Object, e As System.EventArgs) Handles btnapprove.Click
...
For Each row As GridViewRow In GridViewdoc.Rows
...
Next
BindGridViewData()
End Sub

Protected Sub BindGridViewData()
Using conn As New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\surgerydb.mdf;Integrated Security=True;Connect Timeout=30")
Using cmd As New SqlCommand("SELECT DGV.* FROM docgridview DGV INNER JOIN Order_pres OP ON OP.OrderID = DGV.OrderID WHERE DGV.DoctorId = @DoctorId AND OP.Approved IS NULL", conn)
cmd.CommandType = CommandType.Text
cmd.Parameters.Add(New SqlParameter("@DoctorId", Session("DoctorId")))
Dim dataAdapter As New SqlDataAdapter(cmd)
Dim dtm As New DataTable()
dataAdapter.Fill(dtm)
GridViewdoc.DataSource = dtm.DefaultView
GridViewdoc.DataBind()
End Using
End Using
End Sub

查询在 docgridview 中查找记录,而 Order_pres 中的相应记录尚未被批准或拒绝。

注意上面的代码假定以下行出现在您的 VB 代码文件的顶部:

Imports System.Data
Imports System.Data.SqlClient

关于asp.net - 如何在 GridView 上过滤数据/连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38529269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com