繁体   English   中英

为什么无法在数据列表中获取复选框的值?

[英]why can't I get the value of the checkboxes in my datalist?

我在从查询填充的数据列表中有一组复选框。 选中后,我希望将这些值(字符串)从另一个文本框中添加到字符串中。 (基本上只是注释,复选框使键入经常重复的注释变得很简单。)

但是由于某种原因,我无法在我的代码隐藏中得到选中的复选框。 这些复选框以表单的形式呈现,并且在提琴手中,我可以看到某些复选框具有“ on”值,但是我无法将这些值获取到插入字符串中。

现在,我将其包装在按钮的click事件中。 我是否需要对数据列表进行单独的数据绑定? 如果需要这样做,如何将其余的值添加到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>

确保每次循环时都不要对测试框值进行监视:使用

 newstatusentry.s_notes = newstatusentry.s_notes+ StatusProblemString; 

而不是:

 newstatusentry.s_notes = StatusProblemString

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM