3

telerikradbuttonを使用する場合

<telerik:RadButton ID="RadButton1" runat="server" Text="Stackoverflow" 
Skin="Default" OnClientClicked="SaveIt()" CommandArgument="Edit">
</telerik:RadButton>

ページを更新した後、常にSaveIt()関数が機能し始めます。だが; ボタンを使用すると、ユーザーがボタンをクリックした場合にのみ機能します。

<button type="button" onclick="SaveIt()">Stackoverflow</button>

それらの違いは何ですか?

4

3 に答える 3

5

ここにいくつかのことがあります。RadButtonと通常のHTMLボタンの違いは次のとおりです。

RadButtonを使用する場合、生成されるクライアント側のHTMLは次のようになります。

<a id="btnStandard" class="RadButton RadButton_Office2010Silver rbSkinnedButton"
  href="javascript:void(0)">
    <input class="rbDecorated" type="submit" name="btnStandard_input" 
      id="btnStandard_input" value="Standard Button" />
    <input id="btnStandard_ClientState" name="btnStandard_ClientState"
      type="hidden" />
</a>

ご覧のとおり、生成されるタイプは「送信」です。これは、フォームをサーバーに送信することを意味します。したがって、更新すると、フォームを再送信しようとします。私が理解していないのは、ajaxパネルを使用したことがあるかということです。ajaxパネルを使用したことがある場合、ボタンをクリックするとサーバーへのajax投稿がトリガーされ、ページを更新すると、ポストバックではなく、初めてのようにページが更新されるためです。

通常のhtmlはフォーム送信用ではありませんが。クライアント側でクリックイベントをトリガーするために使用されます。

そうは言っても、OnClientCheckedの署名は次のとおりです。

OnClientChecked="<js function name>" 

注:括弧なしの関数名、つまり(および)のみを指定する必要があります。

あなたの場合、括弧を付けたので-ボタンが初期化されると、それに関連するクライアント側の関数が実行され、実行時にJavascriptコードが実行されます。

したがって、これに適したコードは次のとおりです。

<telerik:RadButton runat="server" Text="test" OnClientClicked="func" />

<script>
    function func() {
        alert("clicked");
    }
</script>

これがあなたの質問に答えることを願っています。

于 2012-08-08T06:35:27.063 に答える
0

RadButtonにはOnClientClickedの代わりにonClickメソッドがありませんか?

于 2012-08-08T05:23:40.587 に答える
0

実際、私もこの振る舞いに遭遇しました。ページを更新することは、この主張に対する申し立てられた回答を投稿した人としてのポストバックを意味します。onclientclickedイベントに指定されたjs関数は、ページの読み込み時に起動します。私は答えが単純に明白なものを再記述し、元のポスターが機能していないコードとして投稿したものに気づき、ロード時に起動される関数の問題に対処せずに機能したと主張し、単に「更新」がポストバック。

有効な分析のために魚に話しかけ、誰かが何かを投稿し、その友人がそれを答えとして宣伝したとしても、それが正しいとは限らないことを簡単に指摘したいと思いました。

于 2012-11-27T18:59:44.257 に答える