DayRender runs very late (in Render stage) in the page execution lifecycle, so the button event is never triggered, if you run the following code, you will understand when DayRender runs, also, I have suggested a way to run your event handler<script language="C#" runat="server">
private void calendar_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
if (e.Day.Date==DateTime.Now.Date)
{
Button but=new Button();
but.Text="按钮";
but.ID = "mybutton";
e.Cell.Controls.Add(but);
//but.Click+=new EventHandler(this.button_click);
Response.Write("in DayRender");
hidButton.Value = but.UniqueID;
}
}
private void button_click(object sender, System.EventArgs e)
{
this.txtYear.Text="9999";
}override protected void Render (HtmlTextWriter htw)
{
Response.Write("in Render--begin");
base.Render(htw);
Response.Write("in Render--end");
}private void Page_Load(object sender, System.EventArgs e)
{
if (Request.Form[hidButton.Value] != null)
button_click(null,EventArgs.Empty);
}</script><form runat="server">
<asp:Calendar id="Cal" runat="server" OnDayRender="calendar_DayRender" />
<asp:TextBox id="txtYear" runat="server" />
<input type="hidden" runat="server" id="hidButton" />
</form>
private void calendar_DayRender(object sender, System.Web.UI.WebControls.DayRenderEventArgs e)
{
if (e.Day.Date==DateTime.Now.Date)
{
Button but=new Button();
but.Text="按钮";
but.ID = "mybutton";
e.Cell.Controls.Add(but);
//but.Click+=new EventHandler(this.button_click);
Response.Write("in DayRender");
hidButton.Value = but.UniqueID;
}
}
private void button_click(object sender, System.EventArgs e)
{
this.txtYear.Text="9999";
}override protected void Render (HtmlTextWriter htw)
{
Response.Write("in Render--begin");
base.Render(htw);
Response.Write("in Render--end");
}private void Page_Load(object sender, System.EventArgs e)
{
if (Request.Form[hidButton.Value] != null)
button_click(null,EventArgs.Empty);
}</script><form runat="server">
<asp:Calendar id="Cal" runat="server" OnDayRender="calendar_DayRender" />
<asp:TextBox id="txtYear" runat="server" />
<input type="hidden" runat="server" id="hidButton" />
</form>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货