2016-04-30 22 views
0

Ich habe ein Problem, wenn ich mein asp.net Webforms Projekt in semantische UI ändere. Unten ist eine meiner Formen; Wenn ich auf den Submit-Button klicke, löst es eine Event-Handler-Server-Seite aus, aber ich erhalte eine leere Zeichenkette anstelle dessen, was ich in das Textfeld eingegeben habe.Semantic UI Modal konnte keine Formulardaten erhalten

Link, der modal nennen:

<a href="#" data-modal="recovermodal" class="callmodal">Recover Password</a> 

Modal HTML:

<div class="ui small modal" id="recovermodal"> 
    <form class="ui large form" runat="server"> 
    <i class="close icon"></i> 
    <div class="header"> 
    RECOVER PASSWORD 
    </div> 

    <div class="content"> 
    <div class="description"> 

<div class="field"> 
    <label>E-MAIL</label><%-- 
    <input type="text" name="rev-email" placeholder="E-MAIL">--%> 
     <input type="text" ID="txtRP_Email" name="rev-email" runat="server" placeholder="E-MAIL" /> 
    </div> 
    <div class="field"> 
     <label>PHONE NUMBER</label><%-- 
     <input type="text" name="rev-phone" placeholder="PHONE NUMBER">--%> 
      <input type="text" ID="txtRP_MobileNo" name="rev-phone" placeholder="PHONE NUMBER" runat="server" /> 
     </div> 
     <div class="custommodalfooter"> 
      <div class="ui reset button offmodal">DISCARD</div> 
       <asp:LinkButton ID="btnRecoverPassword" runat="server" CssClass="ui green submit right labeled icon button" onclick="dorecover_Click"> 
        <%= base.GetLocalText("html_buttonConfirm")%> 
       </asp:LinkButton> 
      <!-- <button class="ui reset button offmodal">DISCARD</button><button class="ui positive right labeled icon button" type="submit"><i class="right arrow icon"></i> 
       CONFIRM 
       </button> --> 
     </div> 
    </div> 
</div> 

    </form> 

</div> 

Server-Seite: Hier ist, wo ich E-Mail und MobileNo als leere Zeichenkette erhalten

protected void dorecover_Click(object sender, EventArgs e) 
{ 
    String Email = txtRP_Email.Value.Trim(); 
    String MobileNo = txtRP_MobileNo.Value.Trim(); 
} 

Antwort

0

Bitte versuchen Sie es um Ihre Werte von Request.Form zu erhalten.

protected void dorecover_Click(object sender, EventArgs e) 
{ 
    String Email = Request.Form.Item["txtRP_Email"].Trim(); 
    String MobileNo = Request.Form.Item["txtRP_MobileNo"].Trim(); 
} 

Möglicherweise ist vor der Verwendung von Trim() eine Konvertierung in den Stringtyp erforderlich. Ich hatte keine Chance, diesen Code zu testen, aber in der Theorie ist das, was Sie brauchen.

0

Sie zeigen nicht alles, aber nicht angezeigt (sichtbar: keine) Felder werden nicht gepostet. Wenn auf die Schaltfläche "Genehmigen" (OK) des Dialogfelds geklickt wird, kann die Sichtbarkeit des Dialogfelds vor der Veröffentlichung des Formulars auf "Keine" festgelegt werden.

Wenn Sie den OnApprove-Rückruf des Dialogfelds verarbeiten und false zurückgeben, kann das das Problem lösen, da die Rückgabe von false das Modal nicht versteckt.

Möglicherweise müssen Sie dorecover_Click jedoch vom Handler onapprove selbst aufrufen, anstatt ihn direkt auf der Schaltfläche zu haben, wenn das Postback vor dem Handler onApprove aufgerufen wird.

Sehen Sie diese Frage, die Sie in die richtige Richtung zu erhalten begonnen: Stack Overflow: Calling an ASP.NET EventHandler from JavaScript