【发布时间】:2023-03-31 00:52:01
【问题描述】:
我有一个 Web 应用程序,使用 VB/ASPX,在我的 aspx 文件中使用 SqlDataSource 填充 GridView。像这样:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1" SkinID="dataGrid" onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField AccessibleHeaderText="id_session" HeaderText="id_session">
<EditItemTemplate>
<asp:TextBox ID="txt_id_session" runat="server" Text='<%# Bind("id_session") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbl_id_session" runat="server" Text='<%# Bind("id_session") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:Formation_2014ConnectionString %>"
SelectCommand="SELECT s.id_session, f.libelle_formation, s.date_debut_session, s.date_fin_session, COUNT(p.id_personne) AS Expr1 FROM Sessions AS s LEFT OUTER JOIN Participe AS p ON p.id_session = s.id_session AND p.actif = 1 RIGHT OUTER JOIN Formation AS f ON f.id_formation = s.id_formation WHERE (s.date_fin_session > GETDATE()) OR (s.date_fin_session < GETDATE()) OR (S.date_fin_session = GETDATE()) GROUP BY s.id_session, f.libelle_formation, s.date_debut_session, s.date_fin_session" >
</asp:SqlDataSource>
这部分有效,之后我将第一列“id_session”隐藏在我的 CodeBehind 中:
Protected Sub OnRowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GridView1.RowCreated
GridView1.Columns(0).Visible = False
'e.Row.Cells(0).Visible = False 'This way delete my paging
(Requête)
End Sub
然后,我必须在我的 vb 代码中获取这个隐藏列的值,我正在尝试不同的方式但没有>
Dim id_session = GridView1.SelectedRow.Cells(0).Controls(0).ToString 'Return System.Web.UI.Literalcontrol
Dim id_session = GridView1.SelectedRow.RowIndex 'Return number of line
对不起我的英语,我是法国人!
【问题讨论】:
-
检查下面的解决方案,如果有任何帮助,请告诉我