0

コードビハインド:

protected void Page_Load(object sender, EventArgs e)
{
      Page.ClientScript.RegisterClientScriptBlock(GetType(), "MyKey", "CreateNotificationTree(" + UserId + ")", true);
}

.js ファイル:

function CreateNotificationTree(UserId)
{
    var data = new kendo.data.HierarchicalDataSource({
        transport: {
            read: {
                url: "../api/notifications/byuserid/" + UserId,
                contentType: "application/json"
            }
        },
        schema: {
            model: {
                children: "notifications"
            }
        }
    });

    $("#treeview").kendoTreeView({
        dataSource: data,
        loadOnDemand: true,
        checkboxes: {
            checkChildren: true
        },
        dataTextField: ["notificationType", "NotificationDesc"]
    });
}

マークアップ (必要ですか?):

<script type="text/javascript">
            $(document).ready(CreateNotificationTree(UserId));
</script>

これは機能していません。ツリービューはページにロードされません。

4

2 に答える 2

1

あなたのブロックでは、 on で呼び出されるようにscript割り当てていませんが、すぐに呼び出します。正しい方法は次のとおりです。CreateNotificationTree$(document).ready

<script type="text/javascript">
   $(document).ready(function () {
      CreateNotificationTree(<%= this.UserId.ToString() %>);
   });
</script>

次に、必要はありませRegisterClientScriptBlockPage_Load

2 番目のオプションは、 を使用せず、 inの代わりに$(document).readycall RegisterStartupScript(すべての DOM 要素が利用可能な場合、ページの下部にスクリプトを書き込みます) を呼び出すことです。RegisterClientScriptBlockPage_Load

于 2013-07-31T20:41:33.237 に答える
0

使用する

ClientScriptManager.RegisterStartupScript
于 2013-07-31T20:15:35.933 に答える