2016-12-06 3 views
0

私は簡単なことをするつもりです。私はshortcut.js を見つけ、それを使ってリクエストを実行しています。 CTL-Sを押すと、ページを保存する必要があります。通常のOLDの学校の同期呼び出しは正常です。ASP.NetフォームのJqueryフォーム送信:request(txtname)<> txtname.text

[はい、CTL-S、通常のファイルにHTMLページを保存します。]

まず私はその後、私は細目を歩くだろう、問題を説明します。 ここにショートカットをバインドするjsスニペットがあります。単純にショートカットを起動する際に

shortcut.add("F11", function(){ 
         $('#ctl00$cp1$btnSave').click(); 
         } 
      ); 

...イベントをクリックして、ボタンを呼び出して、キーストロークが捕捉され、保存ボタンが発射されます。私のコードビハインドが呼び出されます。

HTTPリクエストのFORM値が制御変数にマップされていないようです。私はそれを正しく言うべきではないかもしれません。これを考慮してください: ここctl00 $ cp1 $ txtnameは、textBoxコントロールのuniqueIdです。

request('ctl00$cp1$txtname') = "newValue" 
txtname.text = "oldvalue" 

私は戻って、私のマウスワットボタンをクリックすると、同じボタン、同じフォーム....

request('ctl00$cp1$txtname') = "newValue" 
txtname.text = "newvalue" 

これはform.loadの場合です。したがって、このマッピングが起きている/起こっていないときはいつでも、ページのライフサイクルのかなり早い段階です。 これは特定のコントロールに固有のものではありません。すべてのコントロールに同じ問題があります。ここ

は、SAVEボタンは、ここで

<asp:Button ID="btnSave" runat="server" 
     Text="Save" class="submit" CssClass="buttonblue" UseSubmitBehavior="false" /> 

が、私は思考のDOMレベルでそれに気づくことは、それが

<input type="button" name="ctl00$cp1$btnSave" value="Save" onclick="javascript:__doPostBack('ctl00$cp1$btnSave','')" id="ctl00_cp1_btnSave" class="buttonblue"> 

レンダリングされたときにどのように見えるかをマウスクリックする必要がありあり、設計時にあります火災__doPostBack。それ以上はない。だから私は同じを行うためのショートカットコードを変更します

shortcut.add("F11", function(){ 
         __doPostBack('ctl00$cp1$btnSave', ''); 
         } 
      ); 

これは問題を解決しません。 もう一度、これはクライアント側のものですが、実際にはやっかいなことは何もありません。ページのソースを見て、私はまたも問題が解決しない

shortcut.add("F11", function(){ 
         $('#aspnetForm').submit(); 
         } 
      ); 

これを試してみてください、__doPostBackはこのよう

var theForm = document.forms['aspnetForm']; 
if (!theForm) { 
    theForm = document.aspnetForm; 
} 
function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
} 

私はそれで午前ながらレンダリングされることを示します。

私は何か賢いことをしようとしているわけではありません。あるいは、非同期でも、フォームをJSを介して送信したいだけです。

私の主な質問は、なぜasp.netが期待したように動作しないのですか。 特に、request.formの値を制御変数にマッピングしないのはなぜですか?

私はこれと思うでしょう a)ボタンをクリックします。 b)calling(#btn)。click() c)__doPostback(クリックと同じパラメータを使用)を呼び出すと

の結果が得られます。

私はここで何かを理解していません。

興味深いデータポイントは、私が(「#FORM」)を呼び出すことによって、同じ不要な動作を得ることである。(提出)

答えて

0

radTextBoxは何とかasp.netプロセスを妨害制御telerik。それらを通常のテキストボックスに置き換えることによって、私は望ましい動作を得ることができました。

これは数週間私の側にある棘です。

関連する問題