我在页面中有多个下拉列表,如果用户选择一个读取所有禁用全部的复选框,则希望全部禁用全部.到目前为止,我拥有此代码,并且无法正常工作.有什么建议吗? foreach (Control c in this.Page.Controls) { if (c is DropDownList) ((DropDownList)(c)).Enabled = false; } 解决方案 每个控件都有子控件,因此您需要使用递归来触及所有内容: protected void DisableControls(Control parent, bool State) { foreach(Control c in parent.Controls) { if (c is DropDownList) { ((DropDownList)(c)).Enabled = State; } DisableCon
以下是关于 asp.net-controls 的编程技术问答
是否可以设置任何ASP.NET服务器控件的ClientID?我该怎么做? 解决方案 好消息是,在VS 2010 .NET 4中,您将拥有对客户端ID的完整控制! 仍然适用于当前版本的.NET,您可以到期.我认为您需要JavaScript的ID.如果是这样,请像这样获取ID: var myTextBox = $('#'); 其他解决方案 这是不可能的.客户ID由ASP.NET生成.来自 客户端值是由 串联ID值 控制及其独特价值 父控制.如果ID值的ID值 该控件未指定,一个 使用自动生成的值. 其他解决方案 我建议不要这样做,除非您确定要这样做,但是有一种方法.您可以从服务器控件中覆盖ClientID属性. public override string ClientID { get { return "w
我创建了一个自定义服务器控件,它源自System.Web.Contols.CheckBoxList,以自定义CheckBoxList的呈现方式.我还想添加另一个可绑定字段,并在CheckBoxList.RenderItem()方法中获取字段的值.我要创建的字段应包含一个值,该值指定是否检查了CheckBoxListItem.我已经阅读了有关自定义数据场的一些文章,但从未详细解释过. 我包括了我的班级的一部分,以更好地解释我似乎无法理解的内容. public class ListedCheckBoxList : CheckBoxList { protected override void RenderItem(ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer) { if (itemType != ListItemType.Ite
我想创建一个基于属性显示标题/页脚的中继器,只有当DataSource为空时. public class Repeater : System.Web.UI.WebControls.Repeater { public bool ShowHeaderOnEmpty { get; set; } public bool ShowFooterOnEmpty { get; set; } [DefaultValue((string)null), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(System.Web.UI.WebControls.RepeaterItem)), Browsable(false)] public ITemplate EmptyTemplate { get; set; } } 我也想创建一个EmptyTempla
asp.net中的标签控件似乎渲染标签,但是有没有服务器控件,以在
中呈现html? 肯定,我可以设置display: block,它可能看起来相同,但我宁愿不嵌套在跨境内部.另外,我还不想使用,因为这可能不会对回发来表现. 任何建议,请? 解决方案 我认为你需要 HtmlGenericControl 班级.它具有一个构造函数,它接受一个字符串变量,它初始化具有指定标记的HtmlGenericControl类的新实例: var div = new HtmlGenericControl("div"); 它也具有InnerHtml和InnerText属性(在评论中提到了这一点). 当然:ASP.NET有一个名为面板的内置控制! ,您可以使用如下:
我有一个ASP:DataGrid,我需要填充,而原始开发人员创建了一个奇怪的包装器,其灵活性很小,因此我决定将其切换到数据表.唯一的问题是它用于填充我的电网的事件不喜欢我的数据表.它一直说它不能从数据词转换为datarowview,这是有道理的. 我需要帮助找出从数据表传递数据到数据杂志的好方法. 这是有问题的事件 protected override void ReflectItem(DataGridItemEventArgs e) { if (e.Item.DataItem == null) return; DataTable currentItem = (DataTable)e.Item.DataItem; if (currentItem == null) return; var labelBrokerMPID = (Label)e.Item.FindControl("labelBrokerMPID");
我有一个asp:datagrid我需要填充,而原始开发人员创建了一个奇怪的包装器,灵活性很小,所以我已经决定将它切换到DataTable.唯一的问题是它用于填充我的网格的事件不喜欢我的数据.它一直说它无法从DataTable转换到DataRowView,这是有道理的. 我需要帮助涵盖从我的DataTable中将数据传递到DataGrid中的好方法. 以下是问题所在的事件 protected override void ReflectItem(DataGridItemEventArgs e) { if (e.Item.DataItem == null) return; DataTable currentItem = (DataTable)e.Item.DataItem; if (currentItem == null) return; var labelBrokerMPID = (Label)e.Item.FindCont
我正在尝试将控件从页面加载阶段中的代码添加到页面,如下所示: foreach (FileInfo fi in dirInfo.GetFiles()) { HyperLink hl = new HyperLink(); hl.ID = "Hyperlink" + i++; hl.Text = fi.Name; hl.NavigateUrl = "../downloading.aspx?file=" + fi.Name + "&user=" + userIdpar; Page.Controls.Add(hl); Page.Controls.Add(new LiteralControl("
")); } 我得到的错误是在Page.Controls.Add(hl)上,这里是解释: 在DataMind,Init,Load,Prerender或卸载阶段无法修改控制集. 我能做什么来解决这个问题?提前谢谢. 解决方案
我有一个已创建的DataTable对象,我正在使用我的GirdView(ASP.NET),我还需要将该对象的列绑定到DropDownList. DataTable在列中具有正确的详细信息,但该列包含多个列中的1个相同名称 - 因此我很乐意在Databable上进行某种选择,并将其复制到新的DataTable与绑定一起使用下降. 这将允许我通过再次访问数据库来节省资源. 以下是一个示例,当前DataTable有一个名为项目的列,在此列中有以下条目 1 1 1 1 5 5 6 当然,我只需要唯一的项目来绑定到我的下拉目,因此我需要以下数据 1 5 6 当然我不想改变原始的DataTable对象,而是让它的副本是新的细节 如果这是可能的任何想法?或者我需要再次进入DB的行程吗? 提前感谢 解决方案 dataTable dt = new dataTable(); dt = dsmobileinfo.tables [0] .defaultview
这是我创建的if -else梯形图,我创建了一个在我的表单上专注于首先可见的控制.根据要求的要求,任何控件都可以隐藏在表单上.所以我必须找到第一个可见的控制并焦点. if (ddlTranscriptionMethod.Visible) { ddlTranscriptionMethod.Focus(); } else if (ddlSpeechRecognition.Visible) { ddlSpeechRecognition.Focus(); } else if (!SliderControl1.SliderDisable) { SliderControl1.Focus(); } else if (ddlESignature.Visible) { ddlESignature.Focus(); } else {
我正在开发一个独立的 ASP .NET 组件,用于插入我们创建的各种站点.应用程序的一部分是一个 CompositeControl,它需要加载一个 UserControl. 但是,CompositeControl 没有 LoadControl() 方法 - 相反,我必须(据我所知?)依赖 Page.LoadControl(),这是一个问题! 当页面不是程序集的一部分时,我如何知道我的控件的路径?CompositeControl 所在的页面位于我正在编写 Page.LoadControl() 代码的程序集之外,因此找不到我的 .ascx 文件. 我试过 LoadControl(type, object[]) 但这不会加载我需要的“代码 infront"文件. 那么 - 如何在我的 Page.LoadControl 的某些包含的程序集(名称已知,ofc)中找到某些 .ascx 文件的路径?或者,是否有其他方法可以从 CompositeControl 内部加载控件?