2013-04-15 2 views
0

저는 VB .NET을 사용하고 있으며, 4 열 (삭제, 다운로드, 이름 및 PK)이있는 GridView가 있습니다. 열 "이름"과 "ID"는 내 SQL 명령의 결과이며 사용자에게 열 "PK"를 숨기려고합니다. 그러나 나는 그것을 할 수 없었다. 나는 어떤 코드를 시도했지만 아무 것도하지 않았다.그것에 대한 SQL 결과에 gridview 기지에서 열을 숨기는 방법?

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> 

답변

0

먼저, 다음 FalseAutoGenerateColumns 속성을 설정 :

Private Sub GridView_RowDataBound(ByVal sender As System.Object,ByVal e As System.GridViewRowEventArgs) 
{ 
    e.Row.Cells("PK").Visible = False 
} 
0

당신은 당신의 SQL 쿼리에서 PK를 제외 할 수있는 방법이 있나요 당신에게 감사합니다 : 여기

내 코드? PK없이 3 개의 열만 추출하도록

0

자동 생성 필드를 끄고 섹션에 표시 할 필드를 나열하십시오.

관련 문제