2011-04-11 34 views
0

我有一個asp.net webapp,我正在使用Jquery。我想知道如何從客戶端的創建表中提取數據。我嘗試了幾種不同的方式,但已知的工作。我只是想能夠說當點擊提醒從一個隱藏的類我用UID得到的行中的數據。請注意,這是asp.net不正常的HTML。所以總結一下,我有一個創建一個表的列表視圖,並且每個創建的行都將這個ID存儲在333-444-556-66中。當用戶點擊一行時,我會提醒該類別的ID。謝謝jquery asp.net listview

回答

0

最簡單的方法是忘記這是ASP.NET的事實,並開始像HTML一樣對待它。所以你需要傳遞一個ID給客戶端?只需將它添加到HTML中,例如在您的標記:

<ItemTemplate> 
    <asp:TableRow id="TemplateRow" datakey='<%# Eval("MyDataKeyField")>' %> /> 
    ... 
</ItemTemplate> 

或代碼:

override void OnInit(EventArgs e) { 
    ListView1.ItemDataBound += new 
     EventHandler<ListViewItemEventArgs>(ListView1_ItemDataBound); 
} 

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    TableRow row = e.Item.FindControl("TemplateRow"); 
    row.Attributes["datakey"]=((MyDataSourceType)e.Item.DataItem).MyDataKeyField; 
} 

所以現在你將有HTML呈現這樣的:

<table class="myDataTable"> 
    <tr id="$some$insane$asp$dot$net$id" datakey="555-66"> 
     <td> ... </td>... 
    </tr> 
    ... 
</table> 

然後在jQuery的。忽略asp.net標識。除了asp.net之外,任何人都沒有用。然而,您自己的ID與您呈現的完全相同。所以只要抓住它。

$(document).ready(function() { 
    $('.myDataTable tr').click(function(e) { 
     var $my_id = $(this).attr('datakey'); 
     alert($my_id); 
    }); 
}); 
0

您必須爲您創建的每一行都有一個編輯按鈕。當你點擊你傳遞一個ID的行或你拉一個ID,並作出向服務器請求基於ID,得到的結果

從排 VAR ID拉ID =數據[I] .ID