質問

Microsoft Ajax を使用して、JSON パケットを指定して連絡先のリストを動的に作成しています。私のコードは次のとおりです:

function fillContactsFromData(contacts) {
    // this is just for debug to let me know that the data is correct
    if (contacts.length > 0) {
        alert('ID: ' + contacts[0].ID + ', Name: ' + contacts[0].Name);
    }

    $create(Sys.UI.DataView, { data: contacts }, null, null, $get('contacts'));
}

関連する html は次のとおりです。

<div id="contacts" class="sys-template">
    <a onclick="removeContact('{{ ID }}');"><img src="remove.png" /></a>
    <a class="contact" rel="/Contacts/Index/{{ ID }}">{{ Name }}</a><br />
</div>

最初の <a> タグは連絡先を削除するスクリプトを起動するために使用され、2 番目のタグは jQuery のヒントを使用してホバー時にボックスを表示します (詳細はここでは省略します)。

私が抱えている問題は、HTML が正しくレンダリングされないことです。生成されるものは次のとおりです。

<div id="contacts">
    <a><img src="remove.png" /></a>
    <a class="contact" rel="/Contacts/Index/{{ ID }}">Darren Oster</a><br />
</div>

アラート ボックスには、有効な ID (Guid) と名前 (「Darren Oster」) を持つデータが表示されます。名前は正しく表示されますが、ID フィールドは 'rel' 属性で表示されず、'onclick' ステートメントは完全に削除されます。

これは MS Ajax の制限ですか、それとも私のやり方が間違っているのでしょうか?

前もって感謝します。

役に立ちましたか?

解決

属性は、それが全体の値でなければならない任意の{{}}の式を含むことがある場合。

はい: FOO = "{{ 'ABC' + ID}}"

はありません。 FOO = "ABC {{ID}}"

onclickのために生成されていないとして、

、それはおそらくですが、どのような検査は、使用していることは、それがelement.onclickの直接の集合ではなく、addAttribute()で設定されているので、あなたに値が表示されません。

他のヒント

InfinitiesLoopは、右のトラックに私を置くので、ここで最終的な答えは、(場合には他の誰がこの経路をたどる)だ...

まず、私はMSのAjax 4.0以前のプレビューを使用していました。私は今、プレビュー5に更新した、と物事は少し異なる動作をします。ここでは、最終的なHTMLは(ジャバスクリプトが変更されません)です。

<div id="contacts" class="sys-template">
    <a sys:onclick="{{ 'removeContact(\'' + ID + '\');' }}"><img src="remove.png" /></a>
    <a class="contact" sys:rel="{{ '/Contacts/Index/' + ID }}">{{ Name }}</a><br />
</div>
データバインド値を持つ任意の属性の接頭辞、そう

はまた、プレビュー5「SYS」が必要であることに注意してください

<option value="{{ Value }}">{{ Text }}</option>

内容はクリエイティブコモンズの下でライセンスされています。

著作権違反がある場合は、でお問い合わせください info@generacodice.com コンテンツの削除をリクエストします。

scroll top