62,041
社区成员
发帖
与我相关
我的任务
分享
public partial class SDGroupPanel : System.Web.UI.UserControl
{
private CheckBoxList checkboxlist = new CheckBoxList();
private RadioButtonList sortRadioList = new RadioButtonList();//排序选择
protected override void CreateChildControls()
{
EventHandler handler = base.Events[selectedObject] as EventHandler;
if (handler != null)
{
this.checkboxlist.SelectedIndexChanged += handler;
}
this.checkboxlist.SelectedIndexChanged += new EventHandler(checkboxlist_SelectedIndexChanged);
this.panel.Controls.Add(checkboxlist);
this.Controls.Add(panel);
ChildControlsCreated = true;
}
}
/// <summary>
/// 在该事件中初始化排序所需的下拉项与单选项
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void checkboxlist_SelectedIndexChanged(object sender, EventArgs e)
{
InitSortButton();
}
private void InitSortButton()
{
if (SortDropDownList.Items.Count > 0)
{
panel.Controls.Add(SortDropDownList);
panel.Controls.Add(sortRadioList);
if (sortRadioList.Items.Count == 0)
{
sortRadioList.Items.Add(new ListItem("升序", "1"));
sortRadioList.Items.Add(new ListItem("降序", "0"));
}
sortRadioList.RepeatDirection = RepeatDirection.Horizontal;
sortRadioList.RepeatLayout = RepeatLayout.Flow;
sortRadioList.AutoPostBack = true;
sortRadioList.SelectedIndexChanged += checkboxlist_SelectedIndexChanged;
if (base.Events[sortObject] != null)
{
EventHandler ev = base.Events[sortObject] as EventHandler;
this.sortRadioList.SelectedIndexChanged += ev;
}
}
}
object flag=ViewState["存在另外两个控件"];
if(flag!=null && (bool)flag)
{
RadioButtonList sortRadioList = new RadioButtonList();
sortRadioList.ID = "sortRadios"; //设置同一个ID,这样就不必要求在panel中相同位置找到它
panel.Controls.Add(SortDropDownList); //从你的代码看不出这是哪里初始化的
panel.Controls.Add(sortRadioList);
sortRadioList.SelectedIndexChanged += checkboxlist_SelectedIndexChanged;
if (base.Events[sortObject] != null)
{
EventHandler ev = base.Events[sortObject] as EventHandler;
this.sortRadioList.SelectedIndexChanged += ev;
}