2010-06-07 3 views
2

Я создаю веб-приложение с использованием динамических данных Asp.net. Я использую GridView для отображения данных из базы данных.Получить экземпляр управления в динамических данных asp.net

В табличном я имею следующий код для столбцов

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

Но, перед выводом на экран, я хочу сделать некоторую обработку в C# код для каждой строки. В обычном представлении сетки ASP.net мы можем обрабатывать метод OnRowDataBound, а с помощью FindControl («controlid») мы можем получить экземпляр управления, но в случае динамических данных я не получаю никакого атрибута id для столбцов, поэтому я не могу чтобы экземпляр управления отображал обновленные данные в этом элементе управления в зависимости от некоторых условий.

Спасибо, Ashwani

ответ

1

Попробуйте использовать TemplateField вместо DynamicField: http://msdn.microsoft.com/en-us/library/bb288032.aspx

пример того, как использовать:

 <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> 

Вот доступные варианты вам:

  <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> 
Смежные вопросы