擷取GRIDVIEW中的TemplateField顯示的文本值

來源:互聯網
上載者:User

GRIDVIEW中資料來源綁定後的屬性綁定我一般採取2種辦法

一個是BoundField,只要設定DataField的對應屬性名稱即可;

如:

 <asp:BoundField HeaderText ="系列" DataField="Catena"  ItemStyle-Width="10%"/>

還有一個是TemplateField ,用來處理特殊的顯示;

如:

   <asp:TemplateField HeaderText ="年銷量">
            <ItemTemplate>
                   <%# GetSalesVolumes(Container.DataItem) %>
            </ItemTemplate>
            <ItemStyle Width="10%"   HorizontalAlign="Center" />       
    </asp:TemplateField>

但是我在RowDataBound的綁定的一些事件中經常擷取不到TemplateField中的文本值;

row.Cells[index].Text 的值為"";

後面查了些資料和思考了下,發現TemplateField是個容器,用來自訂顯示的,綁定值為其的子容器;

調試監視了下發現

<ItemTemplate>
           <%# GetSalesVolumes(Container.DataItem) %>
</ItemTemplate>
寫法中row.Cells[index].Controls.count =1; 我GetType()了下發現,類型為DataBoundLiteralControl;

所以擷取值的該列儲存格的值方法為:

((DataBoundLiteralControl)row.Cells[index].Controls[0]).Text.Trim();

如果TemplateField包含多個子控制項,就擷取Cells[index]的Controls (類型為ControlCollection)來迴圈擷取相應子控制項,並進行相應的操作;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.