WSS 3.0: How to add settings sub menu for your custom web part – Verbs Explained...

Its pretty simple and straight forward. ;). The web part menu has been handled by the WebPartVerbCollection. Adding an item to the collection will solve our problem.

In your custom web part code, add the following piece of code.

        public override WebPartVerbCollection Verbs

        {

            get

            {

                //New Verb

                WebPartVerb verb = new WebPartVerb("ClientCode", "javascript:alert('hello world');");

                //Text for Verb

                verb.Text = "Helloworld";

                //Add the verb into the array

                WebPartVerb[] newVerbs = new WebPartVerb[] { verb };

                //Add the array of verbs to the collection

                WebPartVerbCollection verbs = new WebPartVerbCollection(base.Verbs, newVerbs);

                //return the collection

                return verbs;

            }

        }

 

Deploy the web part and open the web site where you have the web part, click the drop down button, you will see the “helloworld” menu, click that you will see the alert window.

OK, I agree, adding the client side code is straight forward what about Server Side code. You won't believe me, its also pretty simple. The sample code is below

        public override WebPartVerbCollection Verbs

        {

            get

            {

                //New Verb with the function event handler

                WebPartVerb ServerVerb = new WebPartVerb("MysSrverCode", new WebPartEventHandler(MyFunction));

                //Text for Verb

                ServerVerb.Text = "ChangeTitle";

                //Add the verb into the array

                WebPartVerb[] newVerbs = new WebPartVerb[] { ServerVerb };

                //Add the array of verbs to the collection

                WebPartVerbCollection verbs = new WebPartVerbCollection(base.Verbs, newVerbs);

                //return the collection

                return verbs;

            }

        }

        protected void MyFunction(object sender, WebPartEventArgs args)

        {

            this.Title = "New Title";

        }