繁体   English   中英

在单击按钮事件中,如何将参数传递给来自我网页的BasePage的javaScript函数?

[英]how do I pass a parameter to a javaScript function which comes from the BasePage of my web page, on a click button event?

我有此按钮单击事件:

$('#btnDelete').on('click', function(userId)
{
    var treeView = $("#treeview").data("kendoTreeView");

    $('#treeview').find('input:checkbox:checked').each(function()
    {
        var li = $(this).closest(".k-item")[0];
        var notificationId = treeView.dataSource.getByUid(li.getAttribute('data-uid')).ID;
        $.ajax(
            {
                url: '../api/notifications/deleteNotification?userId=' + userId + '&notificationId=' + notificationId,
                type: 'DELETE',
                success: alert('Delete successful.'),
                failure: alert('Delete failed.')
            });
    });
});

“ userId”来自基础页面:

public class BasePage : System.Web.UI.Page, IRequiresSessionState
{
    public int UserId
    {
        get
        {
            return T2Identity.UserId;
        }
    }
} 

如何在按钮“ btnDelete”的点击事件上将userId变量传递给我的JavaScript函数?

我可以想到的一种方法是,要么将UserId属性作为cookie传递到HtmlResponse内,否则将在第一次发送页面时返回。

另一种方法是在页面加载时将其传递到Asp.NET标记内。 只需将其添加到页面的“正文”中即可:

<input type="hidden" id="user_id" name="user_id" value="<%= base.UserId.ToString() %>" />

可以传递给函数的唯一对象是事件(在您的情况下为单击)和触发事件的元素(在您的情况下为按钮)。

其他所有内容都必须作为全局变量传递或附加到上述对象。 例如,您可以将userId设置为按钮的属性。

您始终可以创建一个隐藏字段并将其传递给页面,然后读取该值。

或者如果您想通过web方法调用它

   [WebMethod]
    public string GetUserId()
    {
          return UserId.ToString();
    }

和JavaScript

    <script type="text/javascript">
        function HandleIT() {
            PageMethods.GetUserId(); 
            function onSucess(result) {
                alert(result);
            }
            function onError(result) {
                alert('Something wrong.');
            }
        }
    </script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM