1

ASPxGridView と ASPxCheckBox と Label を次のように含むコードがあります。


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


C# コードからこれらのコントロールにアクセスできません。誰でも私を助けることができますか?お願いします

4

2 に答える 2

0

ドキュメンテーション メソッドを確認して、さまざまなグリッドビュー テンプレートのコントロールを見つけてください。例: ASPxGridView.FindRowTemplateControl メソッド

ソース: http://developmentsolutionsjunction.blogspot.in/2011/11/find-controls-in-dataitemtemplate-of.html

//マークアップ

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

//コード ビハインドでテンプレート コントロールにアクセスする

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();
        }

コード例:

ASPxGridView grid = (ASPxGridView)sender;

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

参照:
グリッド テンプレートで使用されるコントロールのイベントを作成する方法 グリッド
ビューの概念を理解するためのいくつかの GridView コード スニペット

マークアップで作成した特定のテンプレートでコントロールを取得するには、VisibleIndex または RowHandle を識別します。

上記の例が問題の解決に役立つことを願っています。

于 2012-08-24T07:05:20.903 に答える