获取asp.net动态数据中的控件实例

时间:2010-06-07 09:52:00

标签: asp.net dynamic-data

我正在使用Asp.net动态数据创建一个Web应用程序。我正在使用GridView来显示数据库中的数据。

在网格视图中,我有以下代码列

 <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属性,所以我不能获取控件实例以根据某些条件显示该控件中的更新数据。

谢谢, 阿什瓦尼

1 个答案:

答案 0 :(得分: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>