2010-11-11 46 views
0

我有这样如何从一个控件调用事件处理程序到第二个控件位于第一个控件内的另一个控件?

<asp:Calendar ID="CldrDemo" runat="server" BackColor="#FFFFCC" BorderColor="#FFCC66" 

     OnSelectionChanged="CldrDemo_SelectionChanged" OnDayRender="CldrDemo_DayRender"> 

    </asp:Calendar> 

OnDayRender事件压延控制我有这样

protected void CldrDemo_DayRender(object sender, DayRenderEventArgs e) 
    {if (e.Day.Date == Convert.ToDateTime("11/30/2010"))//comparing date 
     { 
      DropDownList ddlBlist = new DropDownList();//creating instance of ddl 
      ddlBlist.AutoPostBack = true; 
      ddlBlist.Items.Add("Ashrith");//adding values to the ddl 
      ddlBlist.Items.Add("Nayeem");//adding values to the ddl 
      ddlBlist.SelectedIndexChanged += new EventHandler(ddlBlist_SelectedIndexChanged);//want to call this 
      string name = ddlBlist.SelectedItem.Text; 
      e.Cell.Controls.Add(ddlBlist);//adding dropdownlist to the cell 
      e.Cell.BorderColor = System.Drawing.Color.Black; 
      e.Cell.BorderWidth = 1; 
      e.Cell.BackColor = System.Drawing.Color.LightGray; 

     } 

我想呼吁下拉列表事件处理程序代码 - 的SelectedIndexChanged我还添加了像这样

protected void ddlBlist_SelectedIndexChanged(object sender, EventArgs e) 
    { 
    } 

但是,当我改变dropdownlist的项目时,这并没有引起注意。请帮助

回答

0

试试这个

ddlBlist.SelectedIndexChanged + =新的EventHandler( “ddlBlist_SelectedIndexChanged”);

+0

Oh..sorry,我才意识到你已经这样做...... mmh..let我觉得还是没有 – Osvier 2010-11-12 05:10:10

0

尝试把你的日历控件中的Ajax更新面板
,并把此行的组合框添加条目之前:

ddlBlist.SelectedIndexChanged += new EventHandler(ddlBlist_SelectedIndexChanged); 
ddlBlist.Items.Add("Ashrith");//adding values to the ddl 
ddlBlist.Items.Add("Nayeem");//adding values to the ddl 
+0

@TJ :( – NayeemKhan 2010-11-12 08:38:38

0

我相信为了得到这个工作,你需要有重通常会触发SelectedIndexChanged事件之前,将下拉列表添加到控件集合中。

发生了什么事是,你在渲染时动态添加你的控制,但是当回后发生的控制实际上不存在了,或者至少不会直到你的渲染方法被再次调用。所以这个事件不会发生。

在我与动态添加像这样的控制,以便能够处理他们提出你需要能够重新创建动态控件树的页面的Load事件发生前的任何事件的经验。如果你能做到这一点,你可能会发现你的事件会像平常一样激发。

相关问题