如何根据其上的 Sql 结果隐藏 gridview 中的列?
Posted
技术标签:
【中文标题】如何根据其上的 Sql 结果隐藏 gridview 中的列?【英文标题】:How to hide a column from gridview base on a Sql result on it? 【发布时间】:2013-04-15 12:58:54 【问题描述】:我使用的是 VB .NET,并且我有一个 GridView,它有 4 列(删除、下载、命名和 PK)。 “名称”和“ID”列是我的 Sql 命令的结果,我想向用户隐藏“PK”列。但我做不到。我已经尝试了一些代码,但没有。
这是我的代码:
Public Sub obterTabela()
Dim db As DbConnect = New DbConnect()
Dim conn = New SqlConnection(db.geraConnString)
Dim cmd As New SqlCommand()
Dim aux As String = System.IO.Path.GetFileName(System.Web.HttpContext.Current.Request.Url.Query)
aux = aux.Replace("?id=", "")
Dim conjunto As Integer = Convert.ToInt32(aux)
conn.Open()
'alterar
cmd = New SqlCommand("SELECT nome AS 'Nome', pk_table AS 'PK' FROM t_kml WHERE fk_table = " & aux, conn)
Dim dt As DataTable = New DataTable()
Dim sdr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
dt.Load(sdr)
'Dim indice As Integer = (Integer).Parse(dt.Columns("PK"))
'dt.Columns.Item("PK").ColumnMapping = MappingType.Hidden
sdr.Close()
gdv_kml.DataSource = dt
'gdv_kml.Columns(2).Visible = False
gdv_kml.DataBind()
End Sub
和
<asp:GridView ID="gdv_kml" runat="server" HorizontalAlign="Center" CellPadding="4"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#E3EAEB" />
<Columns>
<asp:CommandField ShowDeleteButton="True" />
<asp:ButtonField CommandName="Download" Text="Download" />
</Columns>
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<EmptyDataTemplate>
<b>Nenhum KML incluso.</b>
</EmptyDataTemplate>
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#7C6F57" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
谢谢
【问题讨论】:
【参考方案1】:首先,将AutoGenerateColumns
属性设置为False
,然后:
Private Sub GridView_RowDataBound(ByVal sender As System.Object,ByVal e As System.GridViewRowEventArgs )
e.Row.Cells("PK").Visible = False
【讨论】:
【参考方案2】:有没有一种方法可以从 SQL 查询中排除 PK? 这样你只提取三列,没有PK
【讨论】:
【参考方案3】:关闭自动生成字段并列出您希望在该部分中显示的字段。
【讨论】:
以上是关于如何根据其上的 Sql 结果隐藏 gridview 中的列?的主要内容,如果未能解决你的问题,请参考以下文章