繁体   English   中英

C#ASP.NET Wrap通过动态添加的Label控件动态添加了CheckBox控件

[英]C# ASP.NET Wrap dynamically added CheckBox Control with a dynamically added Label Control

我希望复选框包装在标签中,这样如果他们单击Label ,它将检查CheckBox 一旦将鼠标悬停在Label我还需要descArea进行显示。 这些还必须是动态的,并在后面的代码中创建。 到目前为止,我有2种方法,每种方法都有自己的问题...

此选项不允许调用JS函数以使descArea向下滑动

caPanel.Controls.Add(new LiteralControl(
                "<div class='col-md-6'>"+
                    "<div id='AButton" + t.Rows[i]["ID"].ToString() + "' class='caLabel' onmouseenter='slideDescriptionDown(this.id);' onmouseleave='slideDescriptionDown(this.id);' >" +
                        "<label>"));

                            CheckBox aCheckBox = new CheckBox();
                            aCheckBox.ID = "checkbox" + t.Rows[i]["ID"].ToString();
                            caPanel.Controls.Add(aCheckBox);

                ca.Controls.Add(new LiteralControl("&nbsp;&nbsp;" + t.Rows[i]["NAME"].ToString() + 
                        "</label>"+
                    "</div>"+
                    "<div class='alert alert-info aDescription' id='descArea" + t.Rows[i]["ID"].ToString() + "'>" +
                        "<span id='desc" + t.Rows[i]["CA_ID"].ToString() + "'>" + t.Rows[i]["Description"].ToString() + "</span>" +
                    "</div>"+
                "</div>"));

单击Label时,此CheckBox不允许选中CheckBox 我检查了代码, Label显示为span

         caPanel.Controls.Add(new LiteralControl("<div class='row caSectionRow'>" +
                "<div class='col-md-6'>"));

                    Label aName = new Label();
                    aName.ID = "AButton" + t.Rows[i]["ID"].ToString();
                    aName.Attributes.Add("class", "caLabel");
                    aName.Attributes.Add("onmouseenter", "slideDescriptionDown(this.id);");
                    aName.Attributes.Add("onmouseleave", "slideDescriptionDown(this.id);");
                    aName.Text = "&nbsp;&nbsp;" + t.Rows[i]["NAME"].ToString();

                    CheckBox aCheckBox = new CheckBox();
                    aCheckBox.ID = "checkbox" + t.Rows[i]["ID"].ToString();

                caPanel.Controls.Add(aCheckBox);
                caPanel.Controls.Add(aName);

                caPanel.Controls.Add(new LiteralControl(
                    "<div class='alert alert-info aDescription' id='descArea" + t.Rows[i]["ID"].ToString() + "'>" +
                        "<span id='desc" + t.Rows[i]["ID"].ToString() + "'>" + t.Rows[i]["Description"].ToString() + "</span>" +
                    "</div>" +
                "</div>"));

尝试显示我建议的第一个选项的descArea时,我发现JS函数本身存在错误。 我没有正确的descArea ID 它前面带有MainContent_aContent_以实现ASP.NET中所有控件必须具有的UniqueID属性。

何时添加ctl00前缀?

https://msdn.microsoft.com/zh-CN/library/1d04y8ss(v=vs.100).ASPX

暂无
暂无

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

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