FindControl в инфраструктуре webDataGrid - PullRequest
2 голосов
/ 14 января 2009

У меня есть ig: TemplateDataField, который содержит метку. В обработчике события InitializeRow я пытаюсь найти эту метку с помощью e.Row.FindControl, но получаю ноль.

Мне не удалось найти другой способ найти мой ярлык. Как искать элементы управления в строках WebDataGrid во время события InitializeRow?

Ответы [ 2 ]

2 голосов
/ 12 ноября 2009

Вы должны указать столбец, в котором вы хотите искать, например e.Row.Items[0].FindControl("ControlID"), где 0 индекс столбца.

1 голос
/ 17 марта 2009

Ниже приведено решение, которое должно работать. примечание: код предназначен для элемента управления InfraWistics UltraWebGrid. Элемент управления WebDataGrid является преемником UltraWebGrid.

C #:

protected void UltraWebGridCustomers_InitializeRow(object sender, Infragistics.WebUI.UltraWebGrid.RowEventArgs e)
{
    TemplatedColumn col = (TemplatedColumn)e.Row.Cells.FromKey("HyperLinkEmailColumn").Column;
    CellItem cellItem = (CellItem)col.CellItems(e.Row.Index);
    HyperLink hyperLinkEmail = (HyperLink)cellItem.FindControl("HyperLinkSendEmail");
    hyperLinkShowDetails.Attributes.Add("onclick", "alert('This is the email link');");
}

VB.NET:

Private Sub UltraWebGridCustomers_InitializeRow(ByVal sender As Object, ByVal e As Infragistics.WebUI.UltraWebGrid.RowEventArgs) Handles UltraWebGridCustomers.InitializeRow
        Dim col As TemplatedColumn = CType(e.Row.Cells.FromKey("HyperLinkEmailColumn").Column, TemplatedColumn)
        Dim cellItem As CellItem = CType(col.CellItems(e.Row.Index), CellItem)
        Dim hyperLinkEmail As HyperLink = CType(cellItem.FindControl("HyperLinkSendEmail"), HyperLink)
        hyperLinkShowDetails.Attributes.Add("onclick", "alert('This is the email link');")
End Sub

Код Aspx:

<infragistics:UltraWebGrid ID="UltraWebGridCustomers" runat="server">
    <Bands>
        <infragistics:UltraGridBand BaseTableName="Customers" Key="BandCustomers">
            <Columns>
                ...
                <infragistics:UltraGridColumn Key="NameColumn" BaseColumnName="Name" IsBound="True">
                    <Header Caption="Name">
                    </Header>
                </infragistics:UltraGridColumn>
                <infragistics:UltraGridColumn Key="EmailColumn" BaseColumnName="Email" IsBound="True">
                    <Header Caption="Email Address">
                    </Header>
                </infragistics:UltraGridColumn>
                <infragistics:TemplatedColumn Key="HyperLinkEmailColumn">
                    <CellTemplate>                        
                        <asp:HyperLink ID="HyperLinkSendEmail" NavigateUrl='<%# "~/EmailForm.aspx?email=" & DataBinder.Eval(Container.DataItem,"Email")%>' ToolTip="Send Email" runat="server" />
                    </CellTemplate>
                </infragistics:TemplatedColumn>
                ...
            </Columns>
            <AddNewRow View="NotSet" Visible="NotSet">
            </AddNewRow>                            
        </infragistics:UltraGridBand>
    </Bands>
    ...
</infragistics:UltraWebGrid>    
...