Hi Juan,
I've been doing more research into this issue. I've discovered some things that I want to share with you.
I'm going to suggest that you re-validate your assertion that this problem only occurs when you use the adapters. My testing is showing that it occurs in both the adapted and unadapted cases.
That actually makes sense to me, given the heuristics involved. Let me explain.
When a menu is built to post back to itself its links use the usual __doPostDack JavaScript method. This is done the exact same way (or that's the intention) both with and with the adapters in play. If you hover over a menu link you can see its URL in the status bar of the browser. Look at the second argument of __doPostBack. It identifies the particular menu item that will be clicked. It's how the framework on the server knows how to formulate the right event args to pass to the click handler.
That second arg to __doPostBack is actually the ValuePath of the MenuItem. Each menu item, under the hood, can have a value. If these values are unique then they give the menu a way to uniquely identify all of its menu items. Actually, you can get away with giving the same value to two menu items but they can't be siblings. That would be like naming two children (of the same mother and father) Bob and then expecting that folks would understand when you referred to "Bob's left hand." Hmmm. Which Bob are you talking about?
So the basic problem in your original scenario is what you ultimately found: you had defined Value properties such that the menu didn't have a way to give each menu item a unique ValuePath, thus it could not identify the menu items properly. So the post back event handling got messed up and didn't happen as you expected.
The fix is exactly as you discovered, make sure that your menu item Value properties (if you specify them) are unique (at least for all sibling menu items).
I tested this whole using a modified version of walkthru\simplemenu.aspx from the kit. I enabled and disabled the adapters by retaining or deleting (temporarily) the browser file in App_Browsers. In my tests I placed Value="x" on sibling menu items in the menu in simplemenu.aspx. Then I ran the page in a browser (being sure to refresh the page or dump my page cache ahead of time). Then I clicked each menu item. Whenever sibling menu items had the same value I ran into problems with at least some of the menu items not triggering the OnClick handler for the menu click event. I could dup this problem regardless of the value I gave to Value. I could even give it the empty string "" and the problem would occur.
As I said, I seemed to be able to dup this problem both with and without adapters in play.
Be sure to test lots of the menu items, not just the ones where you add the Value attribute. The pattern of which ones work and which don't is a little tricky to see.
Also, be very, very careful to refresh your page after you modify it to be sure you aren't actually running the PREVIOUS incarnation of the page.
The bottom line to all this is that I don't see a simple way to avoid this problem in the kit. I'm inclined to leave the adapter code as-is. Are you OK with that? It simply means that you need to be careful not to make ValuePath ambigous for you menu items. And this seems to be a restriction in the unadapted case, too.
Russ Helfand
Groovybits.com