2010-06-07 4 views
2

Je crée une application web en utilisant les données dynamiques Asp.net. J'utilise GridView pour afficher les données de la base de données.Obtenir une instance de contrôle dans les données dynamiques asp.net

Dans la vue du réseau je vais avoir le code suivant pour les colonnes

<Columns> 
        <asp:DynamicField DataField="UserId" UIHint="Label" /> 
        <asp:DynamicField DataField="Address" UIHint="Address"/> 
        <asp:DynamicField DataField="CreatedDate" UIHint="Label" /> 
       </Columns> 

Mais, avant d'afficher je veux faire un traitement dans le code C# pour chaque ligne. Dans la vue grille ASP.net normale, nous pouvons gérer la méthode OnRowDataBound, et en utilisant FindControl ("controlid") nous pouvons obtenir l'instance de contrôle, mais en cas de données dynamiques, je ne reçois aucun attribut id pour les colonnes, donc je ne peux pas pour obtenir l'instance de contrôle pour afficher les données mises à jour dans ce contrôle en fonction de certaines conditions.

Merci, Ashwani

Répondre

1

Essayez d'utiliser un TemplateField au lieu de DynamicField: http://msdn.microsoft.com/en-us/library/bb288032.aspx

Un exemple de comment utiliser:

 <asp:Templatefield headertext="Author Name"> 
     <Itemtemplate> 
      <asp:label id="FirstNameLabel" 
      Text= '<%# Eval("au_fname") %>' 
      runat="server"/> 
      <asp:label id="LastNameLabel" 
      Text= '<%# Eval("au_lname") %>' 
      runat="server"/> 
     </Itemtemplate> 
     </asp:Templatefield> 

Voici les options disponibles pour vous:

  <asp:TemplateField 
       AccessibleHeaderText="string" 
       ConvertEmptyStringToNull="True|False" 
       FooterText="string" 
       HeaderImageUrl="uri" 
       HeaderText="string" 
       InsertVisible="True|False" 
       ShowHeader="True|False" 
       SortExpression="string" 
       Visible="True|False"> 
         <ControlStyle /> 
         <FooterStyle /> 
         <HeaderStyle /> 
         <ItemStyle /> 
        <AlternatingItemTemplate> 
         <!-- child controls --> 
        </AlternatingItemTemplate> 
        <EditItemTemplate> 
         <!-- child controls --> 
        </EditItemTemplate> 
        <FooterTemplate> 
         <!-- child controls --> 
        </FooterTemplate> 
        <HeaderTemplate> 
         <!-- child controls --> 
        </HeaderTemplate> 
        <InsertItemTemplate> 
         <!-- child controls --> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <!-- child controls --> 
        </ItemTemplate> 
      </asp:TemplateField> 
Questions connexes