Το πρόβλημα: Έχω ένα button που καλεί μια javascript. Θέλω να πάρει παράμετρο το ClientID ενός άλλου control.
πχ
<asp:Button ID="ButtonDeselectAllFromList" runat="server" Text="Αποεπιλογή Όλων"
OnClick="ButtonDeselectAllFromList_Click"
OnClientClick="SetContainerCheckBoxStates('<%= DataListRoutesForAssignment.ClientID %>','RowCheckBoxSelect',false)"
/>
Δεν θέλει να δουλέψει με τίποτα. Ως παράμετρος στην συνάρτηση τελικά περνάει το <%= DataListRoutesForAssignment.ClientID %> σαν string. Η έκφραση δεν γίνεται evaluate.
Η σελίδα κάνει render και εμφανίζει onclick="SetContainerCheckBoxStates('<%= DataListRoutesForAssignment.ClientID %>', σώνει και ντε το < -> < (έχει σημασία;)
WorkAround
Το πρόβλημα λύνεται ως εξής: φτιάχνω μια παράμετρο που περνάω την έκφραση και χρησιμοποιώ την παράμετρο. Γιατί όμως τώρα το "<%= DataListRoutesForAssignment.ClientID %>" δουλεύει;
Λύση
<script type='text/javascript'>
var dataListClientID = "<%= DataListRoutesForAssignment.ClientID %>";
</script>
<asp:Button ID="ButtonSelectAllFromList" runat="server" Text="Επιλογή Όλων" OnClick="ButtonSelectAllFromList_Click"
CausesValidation="False"
OnClientClick="SetContainerCheckBoxStates(dataListClientID,'RowCheckBoxSelect',true)" />
Καμιά ιδέα για το τι μπορεί να πηγαίνει στραβά;;;;;;
Ευχαριστώ
Stefanos Aslanis