none
Übergabe der ClientID eines ASP-Controls an ein Java-Script RRS feed

  • Frage

  • Guten Abend

    Um im Java (siehe 3) per "document.getElementById" ASP-Textcontrols (siehe 1) adressieren zu können muss ich dynamisch im onclick-event den ClientID eines anderen Controls an Java (siehe 2) übergeben. (Diese Java-Methode rufe ich ca.50 mal im gleichen Skript auf.)

    1)

     

    <asp:TextBox runat="server"  ID="performance0" ...

    2) <asp:CheckBox ID="perf0check" runat="server" onclick="switchBaseControl( '<%=performance0.ClientID%>');" />

    3) function switchBaseControl(ctrlBase) {
        var baseControl = null;
       
        if (typeof (document.getElementById(ctrlBase)) != "undefined" && document.getElementById(ctrlBase) != null) {

            baseControl = document.getElementById(ctrlBase);
             ...  

    Leider wird während dem Rendern der Code (<%=performance0.ClientID%>)  nicht richtig aufgelöst.

    Frage:
    Kann mir jemand erklären, wie ich wieder auf den richtigen Pfad kommen?

    Vielen Dank und ein schönes Wochenende

    Ralph

    Freitag, 14. Januar 2011 16:06

Antworten

  • Hallo Ralph,

    probiers mal so:

    <asp:CheckBox ID="perf0check" runat="server" onclick='<%# String.Format( "switchBaseControl( ""{0}"" );", performance0.ClientId ) %>' /><br/>
    
    

    In dem Fall (wegen des <%# ... %> DataBinding Konstrukts) musst Du aber bspw. in Page_PreRender noch perf0check.DataBind() aufrufen. Alternativ Me.DataBind() für die Form.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort markiert huemo Montag, 17. Januar 2011 09:07
    Freitag, 14. Januar 2011 19:57
    Moderator

Alle Antworten

  • Hallo Ralph,

    probiers mal so:

    <asp:CheckBox ID="perf0check" runat="server" onclick='<%# String.Format( "switchBaseControl( ""{0}"" );", performance0.ClientId ) %>' /><br/>
    
    

    In dem Fall (wegen des <%# ... %> DataBinding Konstrukts) musst Du aber bspw. in Page_PreRender noch perf0check.DataBind() aufrufen. Alternativ Me.DataBind() für die Form.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort markiert huemo Montag, 17. Januar 2011 09:07
    Freitag, 14. Januar 2011 19:57
    Moderator
  • Guten Morgen Stefan

    Mit kleinen Syntax-Korrekturen liefs super.

    Vielen Dank und eine erfolgreiche Woche wünscht Dir

    Ralph


    <asp:CheckBox ID="perf0check" runat="server" Text="n.a." onclick='<%# String.Format( "switchBaseControl(  {0} )", performance0.ClientID) %>' />

    Montag, 17. Januar 2011 09:06