2011-03-17 18 views
5

Tengo una vista de cuadrícula con columnas predefinidas y un comando de selección. ¿Por qué obtengo las columnas dos veces? Quiero mantener las columnas predefinidas y el comando de selección, pero evito duplicar las columnas.Cómo evitar las columnas dobles (columnas predefinidas + seleccionar comando)?

<asp:GridView ID="gvMeldingen" runat="server" 
      AllowSorting="True" DataSourceID="MyDataSource" 
      onselectedindexchanged="GridView_SelectedIndexChanged" 
      AutoGenerateSelectButton="True"> 
      <Columns> 
       <asp:BoundField DataField="Melder" HeaderText="Melder" /> 
       <asp:BoundField DataField="Onderwerp" HeaderText="Onderwerp" /> 
       <asp:TemplateField HeaderText="Omschrijving"> 
        <ItemTemplate> 
         <div style="overflow:auto; width: 500px; height: 150px;"> 
          <asp:Label ID="lblOmschrijving" runat="server" Text='<%# Bind("Omschrijving")%>'></asp:Label> 
         </div> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="Fasedatum" HeaderText="Fasedatum" /> 
       <asp:BoundField DataField="Niveau 1" HeaderText="Niveau 1" /> 
       <asp:BoundField DataField="Niveau 2" HeaderText="Niveau 2" /> 
       <asp:BoundField DataField="Outlook_ID" HeaderText="OutlookID" /> 
      </Columns> 
     </asp:GridView> 
     <asp:SqlDataSource ID="MyDataSource" runat="server" 
      ConnectionString="<%$ ConnectionStrings:HELPDESK_OUTLOOKConnectionString3 %>" /> 

Este código muestra cómo utilizar el SelectCommand:

protected void MenuTabs1_MenuItemClick(object sender, MenuEventArgs e) 
    { 
     string select = @"SELECT 
     aanvrager.werknemersnaam AS Melder, 
     hd_aanvragen.aanvraag_titel AS Onderwerp, 
     hd_aanvragen.aanvraag_omschrijving AS Omschrijving, 
     hd_aanvraag_fase.fase_datum AS Fasedatum, 
     hd_melding_niveau_1.niveau_omschrijving AS 'Niveau 1', 
     hd_melding_niveau_2.niveau_omschrijving AS 'Niveau 2', 
     hd_aanvragen.outlook_id 
     FROM hd_aanvragen 
     INNER JOIN hd_meldingen   ON hd_meldingen.melding_id  = hd_aanvragen.melding_id 
     INNER JOIN hd_melding_niveau_1 ON hd_melding_niveau_1.niveau1_id = hd_meldingen.niveau1_id 
     INNER JOIN hd_melding_niveau_2 ON hd_melding_niveau_2.niveau2_id = hd_meldingen.niveau2_id 
     INNER JOIN hd_aanvraag_fase  ON hd_aanvraag_fase.aanvraag_id = hd_aanvragen.aanvraag_id 
     INNER JOIN hd_statussen ON hd_statussen.status_id = hd_aanvraag_fase.status_id 
     INNER JOIN hd_werknemers AS oplosser ON oplosser.werknemer_Id = hd_aanvraag_fase.werknemer_Id 
     INNER JOIN hd_werknemers AS aanvrager ON aanvrager.werknemer_Id = hd_aanvragen.werknemer_Id 
     WHERE hd_statussen.status_id = "; 

     int index = Int32.Parse(e.Item.Value); 
     multiTabs1.ActiveViewIndex = index; 
     int status = 0; 
     if (index == 1) 
      status = 2; 
     else if (index == 2) 
      status = 16; 
     else if (index == 3) 
      status = 17; 
     else if (index == 4) 
      status = 4; 
     MyDataSource.SelectCommand = select + status; 
    } 
+2

prueba añadir "AutoGenerateColumns = False" –

+0

eso es todo, tienes que publicarlo como respuesta: p – SamekaTV

Respuesta

9

Hay que añadir la propiedad AutoGenerateColumns a su GridView con el valor "falso". Eso le permitirá al GridView saber que no se deben generar columnas automáticamente durante el proceso de vinculación.

¡Buena suerte! :)

Cuestiones relacionadas