2016-04-30 8 views
0

私のasp.net webformsプロジェクトをセマンティックUIに変更する際に問題があります。以下は私のフォームの一つです。送信ボタンをクリックすると、サーバーサイドのイベントハンドラがトリガされますが、テキストボックスに入力した内容の代わりに空の文字列が表示されます。モーダル呼び出しセマンティックUIモーダルフォームデータを取得できません

リンク:

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

モーダルの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> 

サーバー側:私は空の文字列として

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

答えて

0

を電子メールとMobileNoを取得する場所 ここでは試してみてくださいRequest.Formから値を取得します。

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

トリム()を使用する前に文字列型に変換する必要があるかもしれません。私はこのコードをテストする機会はありませんでしたが、理論的にはこれが必要です。

0

あなたはすべてを表示しているわけではありませんが、非表示(表示:なし)のフィールドは表示されません。ダイアログの「承認」(OK)ボタンをクリックすると、フォームがポストされる前にダイアログの表示が「なし」に設定されている可能性があります。

ダイアログのonApproveコールバックを処理してfalseを返すと、falseを返すとモーダルが隠蔽されないため、問題が解決されることがあります。

しかし、onApproveハンドラの前にポストバックが呼び出された場合は、ボタン上に直接dorecover_Clickを呼び出す必要はありません。

あなたは正しい方向に始めるために、この質問を参照してください: Stack Overflow: Calling an ASP.NET EventHandler from JavaScript

関連する問題