2015-10-13 87 views
0

我正在創建一個Web應用程序,該應用程序將允許使用ASP.NET編輯數據庫表。Gridview消失jQuery ASP.NET

我已經獲得了應用程序中的所有功能,並且一切正常。但是,現在規範已經改變,我需要有多個gridview顯示不同的數據庫表。所以,我已經實現了jquery和一個下拉菜單,它只顯示特定的div,取決於下拉菜單中選擇的值。

這很好,我只顯示我想要取決於我選擇的值的gridview。儘管當試圖編輯gridview時,gridview消失了;這隻發生在實現jQuery之後。

當我在下拉菜單中選擇不同的選項,然後選擇我想要的選項時,我可以再次顯示gridview。

這是因爲編輯按鈕不應該影響我在下拉菜單中選擇的值。

任何人都可以幫忙嗎?

的jQuery:

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('.group').hide(); 
      $('#no_option_selected').show(); 
      $('#DropDownList1').change(function() { 
       $('.group').hide(); 
       $('#' + $(this).val()).show(); 
      }) 
     }); 
</script> 
+1

每次你編輯你的一個gridview,你的整個頁面。每當你的頁面重新加載時,你的jQuery隱藏了所有的表格。將選定的網格視圖存儲在JavaScript中的cookie中。或者將show/hide邏輯放在c#中的代碼隱藏頁面中。 –

+0

@OlivierDeMeulder如果我在默認頁面上使用iframe,iframe只顯示單獨的頁面,這也可以工作嗎?我不喜歡這件事的唯一情況是每張桌子都有不同的頁面。 – Paul

+0

我可能不會在這種情況下使用iframe。 –

回答

0

它可能更容易做的一切在.NET/C#,而不是ASP.NET/jQuery的混合體。將您的下拉列表轉換爲服務器控件並定義一個OnSelectedIndexChanged。 (不要忘記的AutoPostBack設置爲True)

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
    OnSelectedIndexchanged="Gridview_ShowHide"> 
</asp:DropDownList> 

然後在後面的代碼:

public void Gridview_ShowHide(Object o, EventArgs e) 
{ 
    gv1.Visible = gv2.Visible = gv3.Visible = gv4.Visible = false; 
    switch (DropDownList1.SelectedValue) 
    { 
     case 'gv1': 
       gv1.Visible = True; 
       break; 
     case 'gv2': 
       gv2.Visible = True; 
       break; 
     case 'gv3': 
       gv3.Visible = True 
       break; 
     case 'gv4': 
       gv4.Visible = True; 
       break; 
    } 
} 

通過這樣做,ASP.NET的ViewState將跟蹤這些GridView控件是可見的,而不是可見的,即使在回傳之後。

+0

謝謝你的回答。回到辦公室後,我會試試這個方法。它似乎比我的iframe和多種不同的web表單解決方案更易於維護。 – Paul