简体   繁体   中英

Finding controls within Devexpress ASPxGridView

I have a code that contains an ASPxGridView and a ASPxCheckBox and Label within in like:


    <dx:ASPxGridView ID="gvTableSearchHomes" runat="server" DataSourceID="XmlHomes" Width="341px"
CssClass="tableViewSearchGrid" ClientInstanceName="gvTableSearchHomes"
AutoGenerateColumns="False" EnableRowsCache="false" KeyFieldName="ID">
<%--<Columns>--%>
    <%-- DXCOMMENT: Within ASPxGridView, add a column whose values will participate in filtering --%>
    <%--<dx:GridViewDataTextColumn FieldName="Address">
        <PropertiesTextEdit NullText="Search your home"></PropertiesTextEdit>
        <Settings AllowAutoFilterTextInputTimer="True" AutoFilterCondition="Contains" />
    </dx:GridViewDataTextColumn>
</Columns>--%>
    <Templates>
     <%--DXCOMMENT: Configure the grid's DataRow template in accordance with data source fields --%>
    <DataRow>
        <div class="gvItem">
            <dx:ASPxCheckBox ID="ChkBookList" runat="server"></dx:ASPxCheckBox>
            <dx:ASPxLabel ID="Address" runat="server" CssClass="address" Text='<%# Utils.ExtractFirstRow(Eval("Address")) %>' />
            <%--<p><dx:ASPxLabel ID="Address2" runat="server" CssClass="address2" Text='<%# Utils.ExtractSecondRow(Eval("Address")) %>' /></p>
            <p><dx:ASPxLabel ID="Price" runat="server" CssClass="price" Text='<%# Utils.GetPrice(Eval("Price")) %>' /></p>--%>
        </div>
    </DataRow>
</Templates>
<SettingsPager Visible="false" PageSize="1000" />
<Settings ShowVerticalScrollBar="True" ShowFilterRow="true" ShowColumnHeaders="false"/>
<SettingsBehavior AutoExpandAllGroups="true" AllowSelectSingleRowOnly="true" AllowSelectByRowClick="true"/>
<ClientSideEvents 
    Init="function(){ hr.TableViewLandscape_Adjust(); }" 
    EndCallback="function(){ hr.TableViewLandscape_Adjust(); }"
    SelectionChanged="OnGvTableSearchHomesSelectedChanged" />
<Styles>
    <SelectedRow ForeColor="White"></SelectedRow>
</Styles>


I am not able to access these cotnrols through C# code. Can anybody help me. Please

Check the documentation methods to find controls in different gridview templates. eg ASPxGridView.FindRowTemplateControl Method

Source: http://developmentsolutionsjunction.blogspot.in/2011/11/find-controls-in-dataitemtemplate-of.html

//markup

    <dx:ASPxGridView ID="grvTest" AutoGenerateColumns="False" runat="server" DataSourceID="SqlDataSource1"
          OnHtmlRowPrepared="grvTest_HtmlRowPrepared" OnHtmlRowCreated="grvTest_HtmlRowCreated">
          <Columns>
              <dx:GridViewDataTextColumn Caption="RowID" Name="colRowID" VisibleIndex="0" Width="20px">
                  <DataItemTemplate>
                       <dx:ASPxLabel ID="lblRowID" runat="server" Text='Label'>
                      </dx:ASPxLabel>
                 </DataItemTemplate>
</dx:GridViewDataTextColumn>

//accessing template control in code-behind

protected void grvTest_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
        {
            if (e.RowType != GridViewRowType.Data) return;

            ASPxLabel label = grvTest.FindRowCellTemplateControl(e.VisibleIndex, null,
            "lblRowID") as ASPxLabel;
            label.Text = (e.VisibleIndex + 1).ToString();
        }

example code:

ASPxGridView grid = (ASPxGridView)sender;

ASPxPageControl myPages = grid.FindEditFormTemplateControl("CityEditTabs") 
                                                              as ASPxPageControl;

References:
How can I write events for the controls used in my Grid templates
Some GridView code snippets to understand gridview concepts

Identify the VisibleIndex or RowHandle to get the control in particular template that you have created in your markup.

Hope above example will help you to solve your problem.

thanks I solved mi problem. I put this

Protected Sub GvEncuesta_HtmlRowCreated(sender As Object, e As ASPxGridViewTableRowEventArgs)
    If (e.RowType <> GridViewRowType.Data) Then Return

    Try
        Dim cmbRespuesas As ASPxComboBox = GvEncuesta.FindRowCellTemplateControl(e.VisibleIndex, Nothing, "ASPxCmbRespuestas")

        cmbRespuesas.IncrementalFilteringMode = IncrementalFilteringMode.Contains
        cmbRespuesas.Visible = True
        cmbRespuesas.DataSource = wcfCap.RetrieveRespuestaEncuestaxEstado(1)
        cmbRespuesas.ValueField = "Cod_Respuesta"
        cmbRespuesas.TextField = "Nombre_Respuesta"
        cmbRespuesas.DataBindItems()
    Catch ex As Exception
    End Try
End Sub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM