2012-12-04 61 views
0

我有一組複選框中從查詢填充的數據列表。選中時,我希望將這些值(字符串)從另一個文本框添加到字符串中。 (基本上只是指出,和複選框使打字經常重複的意見的短期工作。)爲什麼我無法獲得我的數據列表中複選框的值?

但由於某些原因,我不能得到的檢查框在我隱藏得到認可。複選框呈現在窗體中,在fiddler中,我可以看到有些複選框有一個「on」值,但我無法將值傳入插入字符串。

現在,我只是有這個包裹在按鈕的單擊事件。我需要在數據專家上做一個單獨的數據綁定嗎?如果我需要這樣做,我怎樣才能將其餘的值加入到點擊事件中?我嘗試單獨做數據綁定,然後從click事件中調用數據綁定函數,但我創建的變量無法在同一個上下文中找到。

這裏的CS代碼:

foreach (DataListItem item in StatusCheckboxDataList.Items) 
      if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) 
      { 
       { 

        CheckBox StatusProblemDescriptionCheckbox= (CheckBox)item.FindControl("StatusProblemDescriptionCheckbox"); 
        HiddenField StatusProblemDescriptionHidden= (HiddenField)item.FindControl("StatusProblemDescriptionHidden"); 
        if (StatusProblemDescriptionCheckbox != null) 
        { 
         if (StatusProblemDescriptionCheckbox.Checked == true) 
         { 
          string StatusProblemString = StatusProblemDescriptionHidden.Value; 
          StatusProblemString = "Errors Found: " + StatusProblemString + ", " + Status_notes.Text; //this is coming from the textbox... it's finding this just fine. 
          newstatusentry.s_notes = StatusProblemString; 

         } 
         else 
         { 
          string StatusProblemString = Status_notes.Text; 
          newstatusentry.s_notes = StatusProblemString; 

         } 
        } 
       } 
      } 

恰好是生活的AjaxControlToolkit手風琴裏面,但我刪除了手風琴,仍然沒有去。

這裏的ASPX代碼

<asp:DataList ID="StatusCheckboxDataList" runat="server"> 
<ItemTemplate> 
    <asp:CheckBox ID="StatusProblemDescriptionCheckbox" runat="server" Text='<%#Eval ("statusprobDesc") %>' /><br /> 
    <asp:HiddenField ID="StatusProblemDescriptionHidden" runat="server" Value='<%#Eval ("statusprobDesc") %>' /> 
    </ItemTemplate> 
</asp:DataList> 
+0

就是找到控制返回null,還是StatusProblemDescriptionHidden.Text爲空? - 在Page_Load中,請確保您只執行數據綁定時的IsPostBack - !做你的開發和測試沒有Ajax工具包,然後將其添加在工作時。 –

+0

謝謝。我認爲findcontrol正在工作,否則我會在我的if語句中出錯,對嗎?因此,如果我執行數據綁定,click事件會得到處理?在單獨的空白? (試過這個,但是它沒有在我的點擊事件中看到「StatusProblemString」)。並且是在ToolKit上的......我將在功能運行後再添加! – walstib

+0

做了一些更多的測試,創造了DataList控件的事件ondatabinding ...如果不知道它做了區別,但我發現這一點:這只是找到集合中的最後一個項目。如果我檢查DataList中的LAST複選框,它將識別該選擇並將其添加到我的字符串中。但只有最後一個。如果我檢查最後一個和其他任何人,它仍然只能識別最後一個複選框。如果我沒有檢查最後一個框,則沒有複選框值將其放入字符串中。那是什麼? – walstib

回答

0

確保你沒有你遍歷每次ovewrirtting測試框的值:使用

newstatusentry.s_notes = newstatusentry.s_notes+ StatusProblemString; 

而不是:

newstatusentry.s_notes = StatusProblemString 
+0

感謝您發佈答案!乾杯! – walstib

相關問題