It's been two weeks since I asked this question, and I am assuming that nobody will answer, so for the record, I will post how I actually solved this problem.
I changed from using an html Table to using an Unordered list. (an option that I had previously ignored because of my perceived difficulty in styling the
<UL>
.I added two hidden fields, one to trigger whether or not the event had fired, and one to store the selected value.
<asp:HiddenField runat="server" ID="hidSelectionChanged" Value="false"/>
<asp:HiddenField runat="server" ID="hidSelectionValue" Value=""/>
I created the "change" event as follows:
function onchange(param) {
var chg = document.getElementById('<%=hidSelectionChanged.ClientID%>');
var val = document.getElementById('<%=hidSelectionValue.ClientID%>');
if (chg) {
chg.value = 'true';
}
if (val) {
val.value = param;
}
__doPostBack('pnlResults', '');
}
Then in each LI
of the UL
I had this code:
<li class="ddl_li"><a href="javascript:onchange('Summary_1')">Summary</a></li>
The result was a full page post-back, but in the Page_Load
event of the Page, I could now check hidSelectionChanged.Value
to see if the PostBack was triggered by my dropdown, and I could check hidSelectionValue.Value
to get the selected value.
In the end, all worked out well.