Bug 6619, assigned to me on my project, innocently asks, “Should prev next appear at the bottom of the list, if there is no prev or next page?” The page uses an ASP.NET DataGrid, which nicely provides me an easy way to turn on paging, which is the idea that I don’t present to you all 300 records you asked for at once, but I let you get 25 or so at a time, with buttons to traverse through the set. In this case, prev/next buttons.
Turns out, Microsoft easily grants me the capability to turn on paging and easily grants me the capability to say that the buttons should say prev or next, but doesn’t easily grant me the ability to turn off, say, the prev button if that button shouldn’t exist. It’ll happily turn off the link itself, so it “knows” there’s no previous page, but the effect of that is to just display the text ‘prev’ without a link. Attempts to update the text of those links on the fly, say to an empty string, are happily ignored by the page… Grr….
So, I start investigating other options. Turns out I can put in my own custom navigation controls, and bypass the prev/next button stuff. Great! The document that tells me how to do that says ‘One of the options on the Pager tab of the Property Builder is Show Navigation buttons’. Hmmm… option on the what tab? Not seeing that in my Properties window…. Oh, that’s because it’s only available on the Property Builder, one of those wizard things I usually avoid because they end up doing stuff for me that causes problems later. Flipping the switch there gives no obvious indication in the Properties Window, no obvious indication in the HTML code, no obvious indication in the code…. but somehow things work differently. Grrrrrrrrrr…
I’ve now spent almost an hour and a half on this bug. Microsoft, your documentation leaves much to be desired. Those of who want to do things beyond your basic behavior run into too many stumbling blocks that don’t have to be there. Don’t box me into your default behavior. Particularly don’t box me into your default behavior without giving me a big ol’ warning that this default behavior can’t be overridden in rational ways. At least spare me the time of running down those fruitless reasonable paths by pointing me in a direction: if you’d like to do X, you should consider using Y instead of our normal recommendation of Z.
Frustrated…