0
ASP.NET WebForms에 대한 자체 컨트롤을 작성합니다. 단지 하나의 버튼. 클릭하면 라벨에 텍스트 "Hello World"가 표시되어야합니다. 그러나 그것은 일어나지 않습니다. 버튼을 클릭하면 레이블 텍스트가 변경되지 않습니다. 왜? 내 제어 :사용자 지정 웹 컨트롤의 단추가 호출되지 않습니다.
public class MyButton : Control, IPostBackEventHandler
{
protected override void Render(HtmlTextWriter writer)
{
writer.AddAttribute("type", "submit");
writer.AddAttribute("value", "ClickMe");
writer.AddAttribute("name", "BtnChange");
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
base.Render(writer);
}
public delegate void OnClickEventHandler(object sender, EventArgs args);
public event OnClickEventHandler Click1;
public void RaisePostBackEvent(string eventArgument)
{
Click1(this, new EventArgs());
}
}
내 ASP 페이지 :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestButton.aspx.cs" Inherits="Hello.TestButton" %>
<%@ Register assembly="Hello" namespace="Hello" tagPrefix="MyButton" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<MyButton:MyButton runat="server" OnClick1="MyButton_OnClick"></MyButton:MyButton>
</div>
</form>
</body>
</html>
그리고 페이지 핸들러 :
namespace Hello
{
public partial class TestButton : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void MyButton_OnClick(object sender, EventArgs args)
{
Label1.Text = "Hello World!";
}
}
}
'RaisePostBackEvent'에 대한 호출이 없기 때문에 –
버튼에 ID를 설정 한 후에 시도 했습니까? – ykatchou