我有一組複選框中從查詢填充的數據列表。選中時,我希望將這些值(字符串)從另一個文本框添加到字符串中。 (基本上只是指出,和複選框使打字經常重複的意見的短期工作。)爲什麼我無法獲得我的數據列表中複選框的值?
但由於某些原因,我不能得到的檢查框在我隱藏得到認可。複選框呈現在窗體中,在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>
就是找到控制返回null,還是StatusProblemDescriptionHidden.Text爲空? - 在Page_Load中,請確保您只執行數據綁定時的IsPostBack - !做你的開發和測試沒有Ajax工具包,然後將其添加在工作時。 –
謝謝。我認爲findcontrol正在工作,否則我會在我的if語句中出錯,對嗎?因此,如果我執行數據綁定,click事件會得到處理?在單獨的空白? (試過這個,但是它沒有在我的點擊事件中看到「StatusProblemString」)。並且是在ToolKit上的......我將在功能運行後再添加! – walstib
做了一些更多的測試,創造了DataList控件的事件ondatabinding ...如果不知道它做了區別,但我發現這一點:這只是找到集合中的最後一個項目。如果我檢查DataList中的LAST複選框,它將識別該選擇並將其添加到我的字符串中。但只有最後一個。如果我檢查最後一個和其他任何人,它仍然只能識別最後一個複選框。如果我沒有檢查最後一個框,則沒有複選框值將其放入字符串中。那是什麼? – walstib