首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在“网格视图”中验证“批准”中的所有按钮,同时单击“网格视图”之外的其他按钮

问如何在“网格视图”中验证“批准”中的所有按钮,同时单击“网格视图”之外的其他按钮
EN

Stack Overflow用户
提问于 2022-03-02 11:45:35
回答 1查看 83关注 0票数 -2

我想在vb.net中添加一个按钮,例如,在另一个表的网格视图之外添加批量审批。点击那个按钮I.e是批量批准..所有验证按钮都在每一行的网格视图中被验证.然后变成了确认。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-04 03:37:22

好的,我们有一些网格,对每一行都有某种审批按钮。

好的,我们有一些典型的标记,如:

这是一个网格(酒店预订),然后一个“管理员”必须批准每一个。

所以,比如说这样的标记--没什么特别的:

代码语言:javascript
复制
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="ID" CssClass="table">
            <Columns>
                <asp:BoundField DataField="FirstName" HeaderText="FirstName"  />
                <asp:BoundField DataField="LastName" HeaderText="LastName"  />
                <asp:BoundField DataField="HotelName" HeaderText="HotelName" ItemStyle-Width="180" />
                <asp:BoundField DataField="City" HeaderText="City"  />
                <asp:BoundField DataField="Description" HeaderText="Description"  />
                <asp:TemplateField HeaderText="Approved" ItemStyle-HorizontalAlign="Center" >
                    <ItemTemplate>
                           <asp:CheckBox ID="chkApproved" runat="server" Checked='<%# Eval("Approved") %>' 
                                CssClass="bigcheck"  />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="By">
                    <ItemTemplate>
                        <asp:Label ID="lblApBy" runat="server" Text='<%# Eval("ApprovedBy") %>' ></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>                    
                <asp:TemplateField HeaderText="Approve">
                    <ItemTemplate>
                        <asp:Button ID="cmdApprove" runat="server" Text="Approve" CssClass="btn"
                            onclick="cmdApprove_Click"/>
                    </ItemTemplate>
                </asp:TemplateField>


            </Columns>
        </asp:GridView>
        <div style="float:right">
        <asp:Button ID="cmdApproveAll" runat="server" Text="Approve All" CssClass="btn" />

以及加载网格的代码:

代码语言:javascript
复制
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        LoadGrid()
    End If

End Sub

Sub LoadGrid()

    Using conn As New SqlConnection(My.Settings.TEST4)

        Dim strSQL As String = "SELECT TOP 6 * from tblHotels"
        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            Dim rstData As New DataTable
            rstData.Load(cmdSQL.ExecuteReader)
            GridView1.DataSource = rstData
            GridView1.DataBind()
        End Using
    End Using

End Sub

现在我们有了这个:

​

​

好的,我们在每一行都有一个平面简按钮。要批准行的代码是以下代码:

(网格视图中的简单标准按钮-单击按钮)

代码语言:javascript
复制
Protected Sub cmdApprove_Click(sender As Object, e As EventArgs)

    ' approve one row
    Dim btn As Button = sender
    Dim gRow As GridViewRow = btn.NamingContainer

    Call ApproveGRow(gRow)

End Sub

Sub ApproveGRow(gRow As GridViewRow)

    ' set checkbox = checked
    Dim ckApprove As CheckBox = gRow.FindControl("chkApproved")
    ckApprove.Checked = True
    Dim lBy As Label = gRow.FindControl("lblApBy")
    lBy.Text = UserInitials

    ' Get data base pk id

    Dim pkID As Integer
    pkID = GridView1.DataKeys(gRow.RowIndex).Item("ID")

    ' Now udpate database
    Dim strSQL As String =
        "UPDATE tblHotels SET Approved = 1, ApprovedBy = @Initials WHERE ID = @ID"

    Using conn As New SqlConnection(My.Settings.TEST4)
        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            cmdSQL.Parameters.Add("@Initials", SqlDbType.NVarChar).Value = UserInitials
            cmdSQL.Parameters.Add("@ID", SqlDbType.Int).Value = pkID
            cmdSQL.ExecuteNonQuery()
        End Using
    End Using

End Sub

因此,在单击按钮时,我们将得到当前的行单击,然后调用接受网格ro的批准例程。

因此,如果我单击第二行的say,我们会看到以下内容:

​

​

然而,如何处理整个女孩,有一个按钮,并批准所有的行?

“批准”的按钮如下所示:

代码语言:javascript
复制
Protected Sub cmdApproveAll_Click(sender As Object, e As EventArgs) Handles cmdApproveAll.Click

    For Each gRow In GridView1.Rows

        Call ApproveGRow(gRow)

    Next

End Sub

如果我点击它,我就会得到这个:

​

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71322149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档