我有一个动态 GridView1,其中标题是不同的日期。当用户单击单元格时,我需要标题文本值才能在我的 sql 数据库中查找日期详细信息。
GridView1 喜欢:
线路名称 05-28-21 05-29-21 05-30-21
L1 样式-1 样式-2 样式-3
L2 ab ad ak
如果有任何想法请分享。我从几天开始就挂在那里。
我有一个动态 GridView1,其中标题是不同的日期。当用户单击单元格时,我需要标题文本值才能在我的 sql 数据库中查找日期详细信息。
GridView1 喜欢:
线路名称 05-28-21 05-29-21 05-30-21
L1 样式-1 样式-2 样式-3
L2 ab ad ak
如果有任何想法请分享。我从几天开始就挂在那里。
嗯,好的,我们假设这个标记:
<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 代码现在具有单元格文本值。在那时候?好吧,我将文本推入该隐藏字段,然后单击隐藏按钮以运行服务器端单击事件,该事件现在可以获取/获取/使用单击的标题单元格的文本值。