2011-12-18 42 views
1

想要獲取我點擊的列的標題文本。我想用jQuery在Datagrid中獲取我的列標題

if ($(this).index() == 3) { 
    var row2 = $(this).parents("tr:first"); 
    var Col3 = row2.children("td:eq(3)").text(); 
    alert(Col3); 
} 

我需要的列標題改爲: 下面從發生的點擊的行和列獲取單元格的數據。

感謝

這裏是在GridView

<asp:GridView ID="GV_Tab1" 
       class= "GV_card" 
       AutoGenerateColumns="false" HeaderStyle-CssClass="HeaderCss2" 
       runat="server" 
       OnSelectedIndexChanged="GV_Scorecard_Tab1_SelectedIndexChanged" 
       OnRowDataBound="GV_Tab1_RowDataBound" 
       > 
     <Columns> 
      <asp:TemplateField HeaderText=""> 
      <ItemTemplate> 
        <asp:Label ID="Col" 
        runat="server" 
        commandargument='<%# Container.DisplayIndex%>' 
        ItemStyle-Width="54" 
        ItemStyle-Height="20px" 
        > </asp:Label> 
      </ItemTemplate> 
      </asp:TemplateField> 
      <asp:boundfield datafield="secure 1" headertext="secure 1" ItemStyle-Width="220px" ItemStyle-Height="20px" /> 
      <asp:boundfield datafield="secure 2" headertext="secure 2" ItemStyle-Width="140px" ItemStyle-Height="20px" /> 
      <asp:boundfield datafield="aDays" DataFormatString="{0:n0}" headertext="0-30 Days" visible='true' ItemStyle-Width="60px" ItemStyle-HorizontalAlign="Right"/> 
      <asp:boundfield datafield="bDays" DataFormatString="{0:n0}" headertext="31HorizontalAlign="Right"/> 
      <asp:boundfield datafield="fDays" DataFormatString="{0:n0}" headertext="151-180 Days" visible='true' ItemStyle-Width="60px" ItemStyle-HorizontalAlign="Right"/> 
      <asp:boundfield datafield="gDays" DataFormatString="{0:n0}" headertext="180+ Days" visible='true' ItemStyle-Width="60px" ItemStyle-HorizontalAlign="Right"/> 
      <asp:boundfield datafield="Total" DataFormatString="{0:n0}" headertext="Grand Total" ItemStyle-Width="65px" ItemStyle-HorizontalAlign="Right"/> 
      <asp:TemplateField HeaderText=""> 
      <ItemTemplate> 
        <asp:Label ID="ColumnRef" 
        runat="server" 
        commandargument='<%# Container.DisplayIndex%>' 
        ItemStyle-Width="54" 
        ItemStyle-Height="20px" 
        > </asp:Label> 
      </ItemTemplate> 
      </asp:TemplateField>  

     </Columns> 
</asp:GridView> 

這裏是事件代碼: $(文件)。就緒(函數(){

 if ($("#<%=GV_Tab1.UniqueID%> th") != "Column Title") { 
      $("#<%=GV_Tab1.UniqueID%> td").click(function() { 

下面是HTML標記:

<div id="GV_Tab1-divid" > 
<div> 
    <table cellspacing="0" rules="all" class="GV_Scorecard" border="1" id="GV_Scorecard_Tab1" style="border-collapse:collapse;"> 
     <tr class="HeaderCss2"> 
      <th scope="col">&nbsp;</th><th scope="col">secure 1</th><th scope="col">secure 1</th><th scope="col">0-30 Days</th><th scope="col">31-60 Days</th><th scope="col">61-90 Days</th><th scope="col">91-120 Days</th><th scope="col">121-150 Days</th><th scope="col">151-180 Days</th><th scope="col">180+ Days</th><th scope="col">Grand Total</th><th scope="col">&nbsp;</th> 
     </tr><tr> 
      <td onClientClick="alert('Cell 0 Clicked');" style="background-color:#F5DCBE;"> 
        <span id="GV_Tab1_ctl02_Col" ItemStyle-Width="54" ItemStyle-Height="20px" commandargument="0"></span> 
      </td><td style="background-color:#F5DCBE;height:20px;width:220px;"> 
+0

什麼是HTML是什麼樣子?該代碼正在運行什麼事件? – 2011-12-18 20:12:33

+0

我這樣做的原因是我的Gridview崩潰並擴展導致程序失去標題關係。 – user977645 2011-12-18 23:28:18

+0

這裏是Gridview的標記: – user977645 2011-12-19 00:02:53

回答

0

你的意思是你的?

然後更改

row2.children("td:eq(3)").text() 

row2.children("td:eq(3)").prop("title") //attr if you are using jquery < 1.7 
+0

他問頭:這是在thead/tr/3rd th – SinistraD 2011-12-18 20:21:27

+0

感謝大家的快速回復 - unfortuntatle沒有任何工作。我正在玩所發送的答案。 – user977645 2011-12-18 22:36:28

0

有趣的問題:

http://jsbin.com/ecibuw/3/edit

var i=-1; 
$("td").click (function(){ 

    i=$(this).parent("tr").find("td").index($(this)); 

    alert($(this).parents("table").find("tr td").eq(i).text()); 

}); 
+0

這一個讓我獲得我的最高行數據,而不是標題。 – user977645 2011-12-18 22:33:39

+0

用find(「th」)替換find(「tr td」)作品! – user977645 2011-12-19 15:22:53

+0

非常感謝您的幫助 – user977645 2011-12-19 15:23:20

0

首先,你需要找到的元素的索引該行。之後,去thead並得到那個索引的孩子。

$('td').click(function() 
{ 
    var index= $(this).parent().children().index(this); 
    var val = $(this).parents('table:first').find('thead th').eq(index).text(); 
    alert(val); 
}); 

Fiddle

+0

讓我補充一點:html標記有<30 days> – user977645 2011-12-18 22:35:14

+0

您會詳細說明嗎?或編輯我的小提琴。因爲我不明白。 – SinistraD 2011-12-18 22:52:17

+0

我試圖在小提琴上將表格更改爲Gridview。我把它放在下一條消息中。我正在閱讀Gridview的coulmn標題,當我點擊列中的任何單元格時。 – user977645 2011-12-18 23:07:36

相關問題