2011-06-02 68 views
1

我有一個數據網格,其中列出了產品及其市場份額 - (dgProd)。該數據網格位於DIV中以提供滾動。在DataGrid中的LinkBut​​ton,觸發多個UpdatePanels

點擊其中一個產品名稱會顯示另外兩個div/datagrid組合 - 其中一個帶有摘要(dgSummary),另一個帶有詳細記錄(dgDetail)。

dgProd的回發爲dgSummary和dgDetail提供了知道要顯示的產品的信息。但回傳失去了dgProd中的位置。

我已經嘗試將dgSummary和dgDetail放入UpdatePanels,但我仍然收到完整的回發。我考慮改變產品名稱LinkBut​​ton來運行一些JavaScript而不是傳統的回發,但是我沒有看到服務器如何獲得適當的產品在其他2個網格中顯示。

有什麼建議嗎?

回答

1

你可以用jQuery做到這一點。

創建一個新的ASP頁包含您的產品細節,產品概述

在新的ASP頁面,加載摘要電網進入一個div id爲「摘要」,加載細節都融入一個div ID = 「細節」

然後,用jQuery.ajax()調用你的新頁面;叫..

可以那麼每個「內容」的div加載到佔位符的div中使用#Summary,或#Detail方法你的主頁......

This是一個很好的文章,讓你開始並確實展示了遠程內容的部分加載。

HTH。 Dave

+0

我投了這兩個,因爲每過什麼,我終於實現了一個元素。 – 2011-07-19 19:28:33

1

您需要在UpdatePanel中將每個LinkBut​​ton註冊爲AsyncPostBackTrigger。每個項目在DataGrid中綁定後,你需要搜索的LinkBut​​ton並將其註冊通過代碼如下:

private void OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { 
     LinkButton lb = (LinkButton)e.Item.FindControl("myLinkButton"); 
     ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(lb); 
    } 
} 
+0

我投這兩個,因爲每個都有我最終做的一個元素。 – 2011-07-19 19:28:14

相關問題