【发布时间】:2015-08-24 14:46:14
【问题描述】:
好的,我有一个gridView
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
RowStyle-CssClass="td" HeaderStyle-CssClass="th"
CellPadding="6" DataKeyNames="ID" ShowFooter="true">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Date" HeaderText="Date" />
......
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="lnkDetails" runat="server" Text="Details" OnClick="DetailsView" CommandName="DetailsCommand"></asp:Button>
</ItemTemplate>
</asp:TemplateField>
</Columns>
如您所见,我已配置“lnkDetails”按钮,以便在单击时触发 DetailsView() 函数,该函数 然后调用“SqlCommand”并将数据绑定到“asp Repeater”,本质上显示所选记录的自定义“详细信息视图”。
Protected Sub DetailsView(ByVal sender As Object, ByVal e As EventArgs)
Dim con As New SqlConnection
Dim cmd As New SqlCommand
con.ConnectionString = ConnectionString() 'Thats a function
con.Open()
cmd.Connection = con
cmd.CommandText = "SELECT FROM... WHERE ID=" & id & ""
....
Repeater1.DataSource = cmd.ExecuteReader()
Repeater1.DataBind()
End Sub
相当直接,对吧?
现在我要做的(UI 方面)是允许用户通过选择记录的(整个)行而不是详细信息按钮来触发该单击事件。 然后我想隐藏它。
我很确定您可以从带有 jquery 的 .aspx 页面(onRowClick 转到并单击详细信息按钮)或从后面的代码中做到这一点,我只是还没有找到适合我的解决方案。 有什么想法吗?
【问题讨论】:
-
That answer 似乎是你要找的东西
-
谢谢,实现了。我现在该如何调用我的 DetailsView(ByVal sender As Object, ByVal e As EventArgs) 函数或从 _SelectedIndexChanged 内部单击所述按钮?
-
嗯,我的意思不是“逐字执行该链接上的任何内容”。您的 DetailsView 本身就是一个很好的事件处理程序(虽然不是最好的名称),只需使用它来订阅索引更改事件
-
@Satindersingh 这也是一个很酷的效果,如果您正在为您的详细信息查看数据进行“SQL 查询”,则认为它不可行
标签: jquery asp.net vb.net gridview webforms