我使用后面的代码创建了一个简单的asp按钮。我在页面上成功添加了这个按钮,它在网页上显示我,但是当我点击按钮然后在网页上回传按钮隐藏后我遇到了问题。请帮我解决这个问题。 这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
CreateButton();
}
}
protected void CreateButton()
{
Button btn = new Button();
btn.ID = "newDynamicBtn";
btn.Text = "Click Me";
//btn.Attributes.Add("runat", "server");
//btn.Attributes.Add("onClick", "newDynamicBtn_Click");
//btn.OnClientClick = "return confirm('are you sure ?')";
btn.Click += newDynamicBtn_Click;
form1.Controls.Add(btn);
}
protected void newDynamicBtn_Click(object sender, EventArgs e)
{
Response.Write(@"<script>alert('Hello')</script>");
}
答案 0 :(得分:1)
每次按钮调用时它也会运行Page_Load事件,如果你想每次按钮显示那么你必须要做功能
CreateButton()没有任何条件(!postBack)
实施例
protected void Page_Load(object sender, EventArgs e)
{
CreateButton();
}
protected void CreateButton()
{
Button btn = new Button();
btn.ID = "newDynamicBtn";
btn.Text = "Click Me";
//btn.Attributes.Add("runat", "server");
//btn.Attributes.Add("onClick", "newDynamicBtn_Click");
//btn.OnClientClick = "return confirm('are you sure ?')";
btn.Click += newDynamicBtn_Click;
form1.Controls.Add(btn);
}
protected void newDynamicBtn_Click(object sender, EventArgs e)
{
Response.Write(@"<script>alert('Hello')</script>");
}
答案 1 :(得分:0)
正如Vishnu Prasad在评论中所说,由于条件if(!isPostBack)
,您的代码仅在页面首次加载时创建按钮。
如果您希望按钮在回发后显示在页面中,则只需删除该条件
答案 2 :(得分:0)
if(!IsPostBack)
上述代码的目的是检查页面是否是第一次请求。 如果第一次请求页面,则if条件内的代码将执行,否则为no。这就是你第二次没有看到按钮的原因。
在if条件之外调用createButton()。