我在查询中填充的数据列表中有一组复选框。选中后,我希望将这些值(字符串)添加到另一个文本框的字符串中。 (基本上只是注释,复选框可以简化输入重复注释的工作。)
但由于某种原因,我无法在我的代码隐藏中获得被选中的复选框。复选框在表单中呈现,在fiddler中,我可以看到一些复选框具有“on”值,但我无法将值插入到插入字符串中。
现在,我只是将其包含在按钮的点击事件中。我是否需要在datalist上进行单独的数据绑定?如果我需要这样做,我如何将其余的值放入click事件中?我尝试单独进行数据绑定,然后从click事件中调用databind函数,但是我创建的变量在同一个上下文中找不到。
这是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 :(得分:0)
确保每次循环时都没有超出测试框值:使用
newstatusentry.s_notes = newstatusentry.s_notes+ StatusProblemString;
而不是:
newstatusentry.s_notes = StatusProblemString