0

EPiServerを使用してWebサイトを開発しています。自分自身に提出するフォームがあります。送信時に、不足しているフィールドがあるかどうかを確認します。はいの場合、エラーメッセージが表示されます。

問題は、送信時にフィールドがリセットされることです。

jQueryを使用してこれを確認できましたが、そうではありません。私はこれをコードビハインドからチェックしています。

私はEnableViewState=trueいくつかの場所を設定しようとしましたが、運がありません。

これが私のコードの一部です:

<asp:Content ID="Content3" ContentPlaceHolderID="RightContentPlaceHolder" runat="server">
  <asp:Panel ID="panelComplaint" runat="server">
    <li>
        <h3>Postnummer*</h3>
        <input id="senderPostCode" name="postCode" type="text" size="20" enableviewstate="true" />
        <asp:Label runat="server" id="lblPostCode" CssClass="missingField" Text="Mangler tekst" Visible="false" />
    </li>
    <li>
        <h3>Post sted*</h3>
        <input id="senderCity" name="city" type="text" size="100" />
        <asp:Label runat="server" id="lblCity" CssClass="missingField" Text="Mangler tekst" Visible="false" />
    </li>
    <li>
      <div class="spacer10px"></div>
      <button type="submit" name="Send" >Send me</button>
    </li>
  </asp:Panel> 
</asp:Content>  

フォームフィールドを保持するには、何をする必要がありますか?

4

1 に答える 1

1

runat="server"入力フィールドに追加してみましたか?私の知る限り、これはasp.netがデータを適切にラウンドトリップするために必要です。それを変えるEPiServerに固有の何かがあるかどうかはわかりません。

このenableviewstate属性は、EPiServerに固有でない限り、実際には何もしません。

IDをASP.netでマッシュアップすることが問題になる場合は、可能であれば.NET 4.0にアップグレードすることを検討してください。これにより、IDの変更方法を制御できます。そうでない場合は、JQueryを介してアクセスできるページにわかりやすい翻訳を配置してみてください。次に例を示します。

<script language="javascript" type="text/javascript">
  function getSenderPostCode() { return eval('<%=senderPostCode.ClientID%>'); }

  var senderPostCodeField = JQuery('#getsenderPostCode');

  alert(senderPostCodeField.length());
</script>

とはいえ、参照する「getSenderPostCode()」があるということは、おそらくJQueryを使用して参照を取得する手順をスキップできることを意味するため、次のように機能します。

alert(getSenderPostCode().length();

コントロールに追加runat="server"することで、そのフィールドのコンテンツにアクセスするために使用する必要がなくなり、Request.Form["senderPostCode"].ToString()代わりに直接アクセスできます。

var contentOfSenderPostCode = senderPostCode.Value.ToString();
于 2010-07-29T08:08:13.993 に答える