태그 사이에 텍스트와 html을 사용하기 위해 만든 사용자 지정 단추에 문제가 있습니다. OnClientClick 이벤트를 제외하고 모든 것이 제대로 작동합니다.asp.net 사용자 지정 단추 OnClientClick이 작동하지 않습니다.
다음은 자체 프로젝트의 Button 클래스입니다.
[ParseChildren(false)]
[PersistChildren(true)]
public class BButton : Button
{
protected override string TagName
{
get { return "button"; }
}
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.Button; }
}
public new string Text
{
get { return ViewState["NewText"] as string; }
set { ViewState["NewText"] = HttpUtility.HtmlDecode(value); }
}
protected override void OnPreRender(System.EventArgs e)
{
base.OnPreRender(e);
LiteralControl lc = new LiteralControl(this.Text);
Controls.Add(lc);
base.Text = UniqueID;
}
[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
[DisplayName("GlyphIcon")]
public string GlyphIcon
{
get { return this.ViewState["GlyphIcon"] as string; }
set { this.ViewState["GlyphIcon"] = HttpUtility.HtmlDecode(value); }
}
[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
[DisplayName("FontAwsome")]
public string FontAwsome
{
get { return this.ViewState["FontAwsome"] as string; }
set { this.ViewState["FontAwsome"] = HttpUtility.HtmlDecode(value); }
}
protected override void RenderContents(HtmlTextWriter writer)
{
if (!string.IsNullOrEmpty(this.GlyphIcon))
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "glyphicon " + this.GlyphIcon);
writer.AddStyleAttribute(HtmlTextWriterStyle.MarginRight, "5px");
writer.RenderBeginTag(HtmlTextWriterTag.Span);
writer.RenderEndTag(); // </span>
}
if (!string.IsNullOrEmpty(this.FontAwsome))
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, "fa fa " + this.FontAwsome);
writer.AddStyleAttribute(HtmlTextWriterStyle.MarginRight, "5px");
writer.RenderBeginTag(HtmlTextWriterTag.Span);
writer.RenderEndTag(); // </span>
}
RenderChildren(writer);
}
}
그리고 이것은 작동하는 asp 페이지 호출입니다.
<CPCC:BButton ID="btnDelete" CssClass="btn btn-danger" runat="server" CausesValidation="False" OnClick="btnDelete_Click" OnClientClick="return confirm('Are you sure you want to Delete this item?');"><i class="fa fa-trash-o"> </i> <asp:Localize runat="server" meta:resourcekey="btnDeleteText" />
</CPCC:StyleButton>
이 호출은 작동하지 않습니다
<CPCC:BButton id="btnAdd" CssClass="btn btn-success" runat="server" OnClick="btnAdd_Click" ValidationGroup="Create" OnClientClick="ShowProgressDialog('Creating Account...');"> <i class="fa fa-plus"> </i> <asp:Localize runat="server" meta:resourcekey="btnCreateText"/> </CPCC:StyleButton>
모든 유효성 검사가 필요한 버튼 OnClientClick="return confirm('Creating Account...');"
를 제외하고 작동하고,이 ASP를 제대로 작동합니다 버튼을 누릅니다. 내가 여기서 뭔가를 놓치고 있니?
을 시도 할 수있는 경우, 클릭에 응답 (문자 그대로) 자식 컨트롤을 필요로 - http://stackoverflow.com/questions/16293456// onclientclick-does-not-works-on-asp-net-linkbutton – MethodMan