我正在寻找一个备忘单,这将允许我向HTML设计师展示标准HTML标签的等效asp.net控件.例如,<asp:Panel>将呈现为HTML <div>,<asp:Label>将呈现为HTML <span>.我一直在谷歌上搜索无济于事.有人可以发布一个好的备忘单链接,以便该项目的设计者能够更清楚地理解aspx页面上的标记.
为了清楚起见,我想要一个主要ASP.NET控件列表的链接,并描述它们与标准HTML的关系.如果这是PDF格式或易于阅读和打印的网页,那将是很棒的.在我的例子中,原因是我们有一个非常熟悉HTML的PHP开发人员来处理我们的项目,我觉得如果可以的话,更好地理解标准的ASP.NET服务器控件会很有用.递给他这样一个"备忘单".
我主要是指.NET 2.0框架,但我们也在使用3.0/3.5.
我需要在单击"提交"按钮时触发所需的字段验证器时更改TextBox的颜色
我有一个项目,我正在尝试在页面上注册自定义服务器控件(没有.ascx文件).我目前正在使用
namespace MyApp.Controls{
public class CustomControl: WebControl{
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["Text"] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Text);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的页面上,
<%@ Register TagPrefix="myControls" Namespace="MyApp.Controls" %>
<myControls:CustomControl runat="server" Text="What up!" />
Run Code Online (Sandbox Code Playgroud)
我收到一个Parser Error,消息"Unknown server tag'myControls:CustomControl'."
我究竟做错了什么?
asp.net custom-server-controls servercontrols asp.net-customcontrol asp.net-controls
我正在编写各种ASP.NET Server控件,我需要删除默认情况下包装我的控件的标记.我知道您可以将标记更改为其他标记(如此问题,如何更改自定义控件的渲染行为是否为跨度)但是如何防止它?
我继承自WebControl(也可以从CompositeControl继承).
我通常得到:
<span>Control output</span>
Run Code Online (Sandbox Code Playgroud)
我需要:
Control output
Run Code Online (Sandbox Code Playgroud)
我重写了RenderContents(HtmlTextWriter输出)和CreateChildControls()方法(跨越各种控件).我迫切需要使用RenderContents(HtmlTextWriter输出)方法来解决这个问题.
我有一个服务器控件作为我的MySite程序集中的类(即,我的站点的项目不仅包含aspx文件,还包含那些aspx文件引用的服务器控件).我在aspx文件中使用以下代码:
<%@ Register Assembly="MySite" Namespace="MySite.misc" TagPrefix="TAC" %>
...
<TAC:CustomACM ID="myID" runat="server" />
Run Code Online (Sandbox Code Playgroud)
该类的代码如下:
namespace MySite.misc
{
public class CustomACM : AutoCompleteExtender, INamingContainer
{
//...
}
}
Run Code Online (Sandbox Code Playgroud)
该网站工作和编译完美,但智能感知在myID的孩子中打破.更改类和register指令中的命名空间以MySiteSC.misc修复此问题,尽管使用MySite.miscSC没有帮助.我的解决方案中的其他地方都MySiteSC没有miscSC使用也没有,并且CustomACM任何命名空间中都不存在其他类.
ReSharper使用工具提示将"MySite"(即寄存器指令中命名空间的一部分)用红色标记为"注册指令未使用且可以安全删除\n模糊引用".禁用ReSharper可防止此错误显示,但无法解决问题.
我是否可以在不更改CustomACM控件的命名空间的情况下解决此问题(并且不将CustomACM控件移动到其他程序集)?
是否可以在ASP.NET服务器控件上设置特定的ID?每次我分配ID并运行Web表单时,ID都会更改.
例如:
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
获取翻译成这个:
<input id="ct100_ContentPlaceHolder1_txtName" type="text" />
Run Code Online (Sandbox Code Playgroud)
我认为这对我来说是使用母版页,但如果是这样,我怎么能确定一个控件将具有一定的ID(用于javascript目的).我将自动生成的ID放在我的javascript中并且它正在运行,但我更喜欢使用我最初分配它们的id.这可能吗?
(这是版本:ASP.NET 3.5)
我希望创建一个用以下内容创建的用户/服务器控件:
<my:MyListControl runat="server">
<asp:ListItem Text="Test1" Value="Test1" />
<asp:ListItem Text="Test2" Value="Test2" />
</my:MyListControl>
Run Code Online (Sandbox Code Playgroud)
我只想在这里寻找一个开始:文章或代码示例.
我应该从哪个基类继承?要覆盖什么?
可能如何自定义我的控件接受的子项(我的:ListItem而不是asp:ListItem).
我想要做的是为我的网站的一小部分创建一个非常简单的面包屑控制.我已经全部使用库存ASP.NET控件,但是这些项目都添加在代码中,这意味着修复拼写错误或格式化错误涉及重新编译,这不是理想的.
这是我的代码,下面添加了Josh的建议:
命名空间MySite.Controls Partial Class BreadCrumbs继承UserControl
Private m_BreadCrumbs As New List(Of BreadCrumbItem)
<PersistenceMode(PersistenceMode.InnerProperty)> _
Public Property Items() As List(Of BreadCrumbItem)
Get
Return m_BreadCrumbs
End Get
Set(ByVal value As List(Of BreadCrumbItem))
m_BreadCrumbs = value
End Set
End Property
Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
Bind()
End Sub
Private Sub Bind()
lvCrumbs.DataSource = Items
Me.DataBind()
End Sub
End Class
Public …Run Code Online (Sandbox Code Playgroud) 任何人都可以解释为什么你不能在ASP.Net中的服务器控制声明中使用内联代码块?
以下是一个简单的例子......
....
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="<%= SomeProperty %>"></asp:Label>
</form>
....
Run Code Online (Sandbox Code Playgroud)
代码块按字面意思呈现给页面...
<span id="Label1"><%= SomeProperty %></span>
Run Code Online (Sandbox Code Playgroud)
我最初的想法是它与在页面生命周期中处理这些事物的顺序有关.据<%=...%>我所知,这些块相当于Response.Write(...)代码隐藏.并且由于服务器控件实际上没有像标记中声明的那样呈现,我想在进行渲染之前可能无法处理嵌入的代码块.
我会非常感激任何人都能解释得更好一点.
但是,数据绑定代码块的<%#...%>行为方式明显不同,但任何人都可以告诉我为什么可以将它们嵌入到服务器控件中...
....
<asp:Repeater id=Repeater1 runat="server">
....
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval(“SomeProperty”) %>'></asp:Label>
</ItemTemplate>
....
</asp:Repeater>
....
Run Code Online (Sandbox Code Playgroud)
这很好用.
我有一个自定义服务器控件,其属性为Title.使用控件时,我想在aspx页面中设置标题的值,如下所示:
<cc1:customControl runat="server" Title='<%= PagePropertyValue%>' >
more content
</cc1:customControl>
Run Code Online (Sandbox Code Playgroud)
但是,当我执行此操作时,我将显示正确的字符串<%= PagePropertyValue%>而不是我希望看到的属性值.
所以在尝试数据绑定表达式后(如下所示).我没有得到看起来很糟糕的字符串文字,但我也没有得到任何其他东西.
<cc1:customControl runat="server" Title='<%# PagePropertyValue%>' >
more content
</cc1:customControl>
Run Code Online (Sandbox Code Playgroud)
我需要对自定义控件做什么才能获得这种价值?或者我需要对页面做些什么.
如何使用jQuery获取服务器控件的ID?
我有
<asp:Label ID="label1" runat="server""></asp:Label>
现在我想得到"label1",
var id = ??
Run Code Online (Sandbox Code Playgroud) asp.net ×10
servercontrols ×10
.net ×1
html ×1
inline-code ×1
jquery ×1
resharper ×1
tags ×1
web-controls ×1