2013-03-27 36 views
2

我有一個DIV內的CheckboxList。點擊按鈕時,DIV顯示爲模式彈出窗口。然後,用戶檢查複選框列表中的任意數量的項目,然後單擊確定。這隱藏了div。隱藏DIV中的Checkboxlist

一旦用戶點擊主窗體上的保存按鈕,我需要將參數傳遞給一個存儲過程,根據checkboxlist中的哪些項目被點擊,但當我運行保存代碼時,它們總是被設置爲未選中狀態。我很想知道如何正確地做到這一點。

感謝

JQuery的:

$(document).ready(function() { 
     $('#<%=txtLANG.ClientID %>').click(function() { 
      $("#overlay-back").dialog({ 
       resizable: false, 
       modal: true, 
       width: 500, 
       height: 400, 
       buttons: { 
        OK: function() { 
         GetLanguages(); 
         $(this).dialog("close"); 
        }, 
        Cancel: function() { 
         $(this).dialog("close"); 
        } 
       } 
      }); 
     }); 
    }); 

保存在代碼隱藏方法

private void Save() 
    { 
     List<string> lstItemsChecked = new List<string>(); 

     for (int i = 0; i < chkTopLanguages.Items.Count; i++) 
     { 
      if(chkTopLanguages.Items[i].Selected) 
       lstItemsChecked.Add(chkTopLanguages.Items[i].Value); 
     } 
     //stored proc call 
    } 

    protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     Save(); 
    } 

ASPX代碼爲DIV彈出和的CheckBoxList

<div id="overlay-back" style="display:none;"> 
    <td rowspan="3" valign="top"> 
    <asp:CheckBoxList ID="chkTopLanguages" TextAlign="Right" runat="server" /> 
      <br /> 
    <asp:TextBox runat="server" ID="txtOtherLanguages" Text="Other Languages..."></asp:TextBox> 
    </td> 
</div> 
+0

您是否在保存按鈕的OnClick上使用了JavaScript函數? – 2013-03-27 19:32:27

+0

不,這是一個ASP按鈕 – 2013-03-27 19:35:26

+0

是否有動態創建的控件? – 2013-03-27 19:37:07

回答

0

可能會發生這種情況,因爲當您關閉彈出窗口時,彈出窗口上的控件無法訪問。我不知道確切的原因,但你可以在javascript中創建一個數組變量。每當您選中或取消選中複選框時,在javascript的幫助下,您可以將該變量修改爲所有變量設置或不設置。

我用模式彈出方式回來,只有這樣的問題。 這種方法可能不是最佳的,但是可以肯定的工作。

0

嘗試將AutoPostBack設置爲false:

<asp:CheckBoxList ID="chkTopLanguages" TextAlign="Right" runat="server" AutoPostBack="false" /> 

對於CheckBoxList控件。

+0

感謝您的建議,但所有項目仍然導致.Selected = false,包括3我已經檢查 – 2013-03-27 19:52:36

+0

嗯,也許當div被隱藏時,值迷路了。你有沒有在瀏覽器開發工具的源代碼? – 2013-03-27 19:56:08