0

現在、Web アプリケーションに取り組んでいます。イベントが asp.net/javascript でどのように宣言されているか、およびこれらがコード ビハインド (この場合は c#) にどのように適合するかについての一般的な情報が必要です。

これが適用される私自身の状況は次のとおりです。AccountsTreeView があり、AccountsTreeView でチェックされているノードに応じて、2 番目の TreeView を情報で更新する必要があります。TreeNodeCheckChanged イベントはコールバックを送信しないため、(単純な) 解決策は、単純なスクリプトを実装してポストバックを提供することです。コードビハインドでポストバック/イベントをキャッチする方法がわかりません。

私が見つけたJavaScriptコード。これを.aspxファイルに埋め込みます: http://forums.asp.net/p/1109288/1888180.aspx

<script language="javascript" type="text/javascript">

function postBackByObject()
    {
        var o = window.event.srcElement;
        if (o.tagName == "INPUT" && o.type == "checkbox")
        {
            __doPostBack("","");
        } 
    }
</script>

私が望んでいる結果は次のようになります。

protected void TreeView_onCheckBoxChanged(Object sender, someEvent? e)
{
    e.SelectedNode.Text = "able to access the selected node.";
}

どんな助けでも大歓迎です!初めての投稿なので不手際がありましたらお許しください。

4

1 に答える 1

0

HTML などを挿入することで、JavaScript イベントにバインドできますonclick='postBackByObject(this)'DOM イベントのリストを次に示します (コードの「属性」列の下にある単語を使用します)。

JavaScript から C# メソッドにデータを渡す方法はたくさんありますが、jQuery を使用する方法の簡単な例を次に示します (そうでない場合はお知らせください)。HTML にハードコーディングするのではなく、on() メソッドを使用してバインドすることを好みます。

<script language="javascript" type="text/javascript">

$("#checkbox-id").on('click','postBackByObject');

function postBackByObject()
    {
        $.ajax({
            url: ControllerName/TreeView_onCheckBoxChanged,
            type: "POST",
            data:{sender:window.event.srcElement}
        });
    }
</script>

良い点on()は、任意のイベントをそれに添付できることです。また、非常にダイナミックでよく書かれています。

その後[HttpPost]、C# メソッドに属性を配置するだけです。名前が正しいことを確認してください。

イベントで C# メソッドを渡す理由が少しわかりません。メソッドと呼ばれるものさえ教えてほしいですか?特定のイベントをコントロール (この場合はチェックボックス) にバインドする必要があるためです。確かに、すべてのイベントを同じメソッドにバインドしたくないですか?

于 2013-10-09T01:36:11.897 に答える