-1

我有一个动态 GridView1,其中标题是不同的日期。当用户单击单元格时,我需要标题文本值才能在我的 sql 数据库中查找日期详细信息。

GridView1 喜欢:

线路名称 05-28-21 05-29-21 05-30-21

L1 样式-1 样式-2 样式-3

L2 ab ad ak

如果有任何想法请分享。我从几天开始就挂在那里。

4

1 回答 1

0

嗯,好的,我们假设这个标记:

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

        <asp:Button ID="cmdHeadClick" runat="server" Text="Headder fun" 
            ClientIDMode="Static" style="display:none" />

        <asp:HiddenField ID="HeadClickValue" runat="server" ClientIDMode="Static" />

        <script>
            function GetHeaderText(hText) {
                $('#HeadClickValue').val(hText)
                $('#cmdHeadClick').click()
            }
        </script>

填充此网格的代码如下:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If IsPostBack = False Then
        LoadGrid()
    End If

End Sub


Sub LoadGrid()

    Using cmdSQL As New SqlCommand("SELECT TOP 20 ID, HotelName, City from tblHotels",
                    New SqlConnection(My.Settings.TEST3))

        cmdSQL.Connection.Open()
        GridView1.DataSource = cmdSQL.ExecuteReader
        GridView1.DataBind()

    End Using


End Sub

Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowDataBound

    If e.Row.RowType = DataControlRowType.Header Then

        For Each MyCell As DataControlFieldCell In e.Row.Cells
            MyCell.Attributes.Add("onclick", "GetHeaderText('" & MyCell.Text & "')")
        Next

    End If

End Sub

Protected Sub cmdHeadClick_Click(sender As Object, e As EventArgs) Handles cmdHeadClick.Click

    Debug.Print("header text = " & HeadClickValue.Value)

End Sub

所以输出看起来像这样:

在此处输入图像描述

单击标题中的酒店名称会输出以下内容:

在此处输入图像描述

现在我用上面的方法连接了一个服务器端点击事件。但是你可以看到我们做了一个简单的网格数据绑定(来自sql server的数据)。

但是,在 RowDataBound 事件中,我们简单地“注入”一个单击事件以供 JavaScript 代码运行,并传递标题单元格文本。

因此,JavaScript 代码现在具有单元格文本值。在那时候?好吧,我将文本推入该隐藏字段,然后单击隐藏按钮以运行服务器端单击事件,该事件现在可以获取/获取/使用单击的标题单元格的文本值。

于 2021-05-29T09:13:43.200 回答