Click here to Skip to main content
15,886,362 members
Home / Discussions / ASP.NET
   

ASP.NET

 
QuestionData Blocks Pin
Tiger4569-Jul-06 15:07
Tiger4569-Jul-06 15:07 
AnswerRe: Data Blocks Pin
Not Active9-Jul-06 16:16
mentorNot Active9-Jul-06 16:16 
QuestionForcing refresh of an HTML frame Pin
WebMaster9-Jul-06 15:03
WebMaster9-Jul-06 15:03 
AnswerRe: Forcing refresh of an HTML frame Pin
mnaveed9-Jul-06 22:25
mnaveed9-Jul-06 22:25 
GeneralRe: Forcing refresh of an HTML frame Pin
cloudking1196610-Jul-06 2:21
cloudking1196610-Jul-06 2:21 
QuestionASP.net MasterPages [modified] Pin
WebMaster9-Jul-06 13:13
WebMaster9-Jul-06 13:13 
QuestionQuery Strings and Frames Pin
JBL_Andon9-Jul-06 7:59
JBL_Andon9-Jul-06 7:59 
AnswerRe: Query Strings and Frames Pin
Guffa9-Jul-06 10:39
Guffa9-Jul-06 10:39 
Questionproved extra info for the membership? Pin
Snowjim9-Jul-06 6:56
Snowjim9-Jul-06 6:56 
QuestionCompiling 1.1 and 2.0 version of same library? Pin
rmatejka9-Jul-06 5:03
rmatejka9-Jul-06 5:03 
AnswerRe: Compiling 1.1 and 2.0 version of same library? Pin
RichardGrimmer11-Jul-06 5:26
RichardGrimmer11-Jul-06 5:26 
GeneralRe: Compiling 1.1 and 2.0 version of same library? Pin
rmatejka11-Jul-06 5:56
rmatejka11-Jul-06 5:56 
Questionevent in custom control [modified] Pin
g00fyman9-Jul-06 3:51
g00fyman9-Jul-06 3:51 
AnswerRe: event in custom control Pin
minhpc_bk9-Jul-06 16:45
minhpc_bk9-Jul-06 16:45 
GeneralRe: event in custom control Pin
g00fyman9-Jul-06 16:52
g00fyman9-Jul-06 16:52 
GeneralRe: event in custom control Pin
minhpc_bk9-Jul-06 17:13
minhpc_bk9-Jul-06 17:13 
GeneralRe: event in custom control Pin
g00fyman9-Jul-06 17:26
g00fyman9-Jul-06 17:26 
the buttons are decalred in a button collection.

initially the button collection is instantiated like this
private ButtonCollection m_Buttons = new ButtonCollection();
    [
     PersistenceMode(PersistenceMode.InnerProperty),
     DesignerSerializationVisibility(DesignerSerializationVisibility.Visible),
     Editor(typeof(ButtonCollectionEditor), typeof(UITypeEditor)),
     Category("Message Box"),
     Description("The buttons that will appear on the Message Box"),
     NotifyParentProperty(true),
     RefreshProperties(RefreshProperties.All),
     Bindable(true)
    ]
    public ButtonCollection Buttons
    {
      get { return m_Buttons; }
    }


in the MessageBox class. There is also an enum to designate a predifned set of buttons that works like this

private MessageBoxType m_MessageBoxButtons = MessageBoxType.YesNoCancel;
    [
     Category("Message Box"),
     Description("The pre-defined type of Message Box you want to start with."),
     DefaultValue(MessageBoxType.YesNoCancel),
     Bindable(true),
     NotifyParentProperty(true)
    ]
    public MessageBoxType MessageBoxButtons
    {
      get { return m_MessageBoxButtons; }
      set
      {
        m_MessageBoxButtons = value;

        Button[] buttons = null;
        Button button = null;

        switch (m_MessageBoxButtons)
        {
          case MessageBoxType.YesNoCancel:

            buttons = new Button[3];

            button = new Button();
            button.ID = "YesButton_" + DateTime.Now.Millisecond;
            button.Text = "Yes";
            buttons[0] = button;

            button = new Button();
            button.ID = "NoButton_" + DateTime.Now.Millisecond;
            button.Text = "No";
            buttons[1] = button;

            button = new Button();
            button.ID = "CancelButton_" + DateTime.Now.Millisecond;
            button.Text = "Cancel";
            buttons[2] = button;

            m_Buttons = new ButtonCollection(buttons);

            break;

          case MessageBoxType.YesNoAbort:

            buttons = new Button[3];

            button = new Button();
            button.ID = "YesButton_" + DateTime.Now.Millisecond;
            button.Text = "Yes";
            buttons[0] = button;

            button = new Button();
            button.ID = "NoButton_" + DateTime.Now.Millisecond;
            button.Text = "No";
            buttons[1] = button;

            button = new Button();
            button.ID = "AbortButton_" + DateTime.Now.Millisecond;
            button.Text = "Abort";
            buttons[2] = button;

            m_Buttons = new ButtonCollection(buttons);

            break;

          case MessageBoxType.Custom:

            Buttons.Clear();
            break;
        }
      }
    }


then in OnInit() i wire up the events like this, i also tried wiring up the event for the buttins during render, but that didnt work either.

protected override void OnInit(EventArgs e)
    {
      if (Draggable)
      {
        Page.ClientScript.RegisterClientScriptInclude(
          this.GetType(), "DragScript", Page.ClientScript.GetWebResourceUrl(this.GetType(),
           "WebMessageBox.Resources.DragScript.js"));
      }
      RenderEmbeddedStyleSheet(null);

      foreach (Button button in Buttons)
      {
        button.Attributes["onclick"] = Page.ClientScript.GetPostBackEventReference(this, button.Text.Trim());
        button.Click += new EventHandler(Button_Click);
      }
    }


the ButtonCollection class extends CollectionBase and overrides the standard functions (add, this[int], delete, clear etc) so it is strongly typed.

kind regards,
g00fy
GeneralRe: event in custom control Pin
minhpc_bk9-Jul-06 18:24
minhpc_bk9-Jul-06 18:24 
GeneralRe: event in custom control Pin
g00fyman9-Jul-06 18:41
g00fyman9-Jul-06 18:41 
GeneralRe: event in custom control Pin
g00fyman9-Jul-06 19:05
g00fyman9-Jul-06 19:05 
GeneralRe: event in custom control Pin
g00fyman9-Jul-06 19:20
g00fyman9-Jul-06 19:20 
GeneralRe: event in custom control Pin
minhpc_bk9-Jul-06 19:32
minhpc_bk9-Jul-06 19:32 
GeneralRe: event in custom control [modified] Pin
g00fyman9-Jul-06 20:59
g00fyman9-Jul-06 20:59 
GeneralRe: event in custom control Pin
minhpc_bk10-Jul-06 17:11
minhpc_bk10-Jul-06 17:11 
GeneralRe: event in custom control Pin
g00fyman10-Jul-06 17:42
g00fyman10-Jul-06 17:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.